我遇到以下代码的问题
function doesNotExist($field, $userInput){
$conn = mysqli_connect("localhost","adminP",base64_decode("MTEyODMx"), "Peter");
$sql = "SELECT". $field ." FROM `accounts` WHERE". $field ." = (?)";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, 's', $userInput);
Print("Test");
mysqli_Stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$row_cnt = mysqli_num_rows($result);
mysqli_stmt_close($stmt);
mysqli_close($conn);
if($row_cnt == 0){
return true;
}
else{
Print ("Invalid " . $field);
return false;
}
}
它给了我错误
警告:mysqli_stmt_bind_param()期望参数1为 mysqli_stmt,第61行的C:\ wamp \ www \ signup.php中给出的布尔值
警告:mysqli_stmt_execute()期望参数1为mysqli_stmt, 第63行的C:\ wamp \ www \ signup.php中给出的布尔值
警告:mysqli_stmt_get_result()需要参数1 mysqli_stmt,第64行的C:\ wamp \ www \ signup.php中给出的布尔值
警告:mysqli_num_rows()期望参数1为mysqli_result, 第65行的C:\ wamp \ www \ signup.php中给出的null
警告:mysqli_stmt_close()期望参数1为mysqli_stmt, 第66行的C:\ wamp \ www \ signup.php中给出的布尔值
我正在用
创建一个stmt$ stmt = mysqli_prepare($ conn,$ sql);
但不知道为什么它没有认出来
答案 0 :(得分:3)
manual很有帮助:
mysqli_prepare()返回一个语句对象,如果发生错误,则返回FALSE。
使用mysqli_error($conn)
获取错误原因。我的猜测是因为你在SELECT和WHERE之后没有空格,所以你得到的是SQL语法错误,除非$ field绝对以空格开头。并开始在代码中使用错误处理!