我正在将我的旧mysql转换为mysqli但遇到了这个问题mysqli结果不起作用。在互联网上查找并且我发现它的功能已经改变了,因为mysqli结果在这里有一个等价物吗?
感谢
这是我的错误
Fatal error: Call to undefined function mysqli_result() in C:\xampp\htdocs\bear_mysqli\functions\users.php on line 153
function user_exists($con,$username) { $username = sanitize($con,$username); $query = mysqli_query($con,"SELECT COUNT(`user_id`)FROM `users` WHERE `username` = '$username'"); return (mysqli_result ($query, 0)== 1) ? true : false; }
答案 0 :(得分:1)
不,没有mysql_result
到mysqli_result
反对。如果您只是检查它是否存在,请仅使用->num_rows
:
而是使用预备语句。
function user_exists($con, $username) {
$sql = 'SELECT * FROM `users` WHERE `username` = ?';
$select = $con->prepare($sql);
$select->bind_param('s', $username);
$select->execute();
$select->store_result();
return ($select->num_rows > 0); // returns bool (true/false)
}
或者为COUNT()
使用别名并获取它:
function user_exists($con, $username) {
$sql = 'SELECT COUNT(`user_id`) AS `total` FROM `users` WHERE `username` = ?';
$select = $con->prepare($sql);
$select->bind_param('s', $username);
$select->execute();
$select->store_result();
$select->bind_result($total);
$select->fetch();
return $total; // returns the result yielded by alias `total`
}
答案 1 :(得分:0)
在php.ini中启用mysqli
搜索extension=php_mysqli.dll
并在php.ini
取消注释,只需在;
之前移除extension=php_mysqli.dll
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
extension=php_mysqli.dll
并在应用设置后重新启动xampp。
答案 2 :(得分:0)
如果您要检查用户名是否存在,可以执行以下操作:
$urexist="SELECT * FROM persons WHERE Email = '$_POST[EMailTxt]'";
$res = mysqli_query($conect,$urexist);//you should add a connection paramenter
$data = mysqli_fetch_array($res, MYSQLI_NUM);
if($data[0] > 1) {
echo "User Exists";
}