我正在尝试将相同的结果从mysql_result()
转换为mysqli
。
我要用这个
function user_id_from_username() {
$username = sanitize($username);
return mysql_result(mysql_query("SELECT id FROM users WHERE username = '$username'"), 0, 'id');
}
输入为
mysqli
。mysql_result()
函数具有string mysql_result ( resource $result , int $row [, mixed $field = 0 ] )
此参数。那么如何使它与
mysqli
中的相同?如果mysqli中有任何函数具有所有这些参数,例如mysql_result()
函数要在mysqli中使用。我知道mysql扩展名将贬值,这就是为什么我要使用mysqli。
更新
我知道如何将数据库连接传递给它,那不是问题。我也试过了。及其工作。
function user_active($username) {
global $con;
$username = sanitize($username);
$result = mysqli_query($con,"SELECT `id` FROM `users` WHERE `username` = '$username' AND `active` = 1");
return (mysqli_num_rows($result) == 1) ? true : false;
}
提前谢谢了。
最佳答案
没有相应的mysqli_result()
函数,但这应等效于基于mysql的代码:
function user_id_from_username() {
$username = sanitize($username);
$result = mysqli_query("SELECT id FROM users WHERE username = '$username'");
$row = mysqli_fetch_row($result);
return $row[0];
}
但是您确实应该检查函数调用的返回值,所以我更喜欢这样的事情:
function user_id_from_username() {
$username = sanitize($username);
$id = false; // Return false on database error, or user not found.
if ($result = mysqli_query("SELECT id FROM users WHERE username = '$username'")) {
if ($row = mysqli_fetch_row($result)) {
$id = $row[0];
}
mysqli_free_result($result); // Always free your resources.
}
return $id;
}
关于php - 如何从mysqli中获得与mysql_result()中相同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330616/