我有這樣的代碼:mysqli_num_rows()錯誤沒有返回字符串
$con=mysqli_connect("example","example","example","example");
function check_input($value)
{
global $con;
// Stripslashes
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// Quote if not a number
if (!is_numeric($value))
{
$value = "'" . mysqli_real_escape_string($con, $value) . "'";
}
return $value;
}
$checklogin = mysqli_query($con, "SELECT username, password FROM users WHERE username LIKE '".check_input($_POST['username'])."';");
if(mysqli_num_rows($checklogin) == 0)
{
echo "Username doesn't exist";
}
而且我得到這個錯誤:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/u436120092/public_html/login.php on line 26 Username doesn't exist
我知道該用戶名不存在,但是這不是問題,我經過測試,問題是mysqli_real_escape_string沒有返回字符串。
有人可以幫我嗎? 在此先感謝。
STOP !!!!您正在使用MySQLi,因此請使用預準備語句/綁定變量。你絕對沒有任何藉口 – 2014-09-23 14:10:42
你的代碼邏輯也是__double__引用字符串值,一旦在check_input()函數中,一次在SQL查詢語句中,這會給你一個無效的SQL語句.....這就是你的另一個原因應該使用綁定變量,它會處理所有的字符串引用 – 2014-09-23 14:11:16
您是否選擇了數據庫? – iatboy 2014-09-23 14:11:30