我想使用mysqli创建一个登录页面,我收到此错误"无法通过引用传递参数1"
这是我的代码:
$q = "SELECT * FROM `my___passloging` WHERE `puser` = ? AND `ppass` = ?";
$procces = $this->db->prepare($q);
$procces->bind_result("ss", $user, $pass);
$procces->execute();
if($procces->num_rows==1) return true;else return false;
$procces->close();
答案 0 :(得分:2)
你从未执行过你的查询。
$procces = $this->db->prepare($q);
$procces->execute(); // this part
$procces->bind_result("ss", $user, $pass);
手册中的示例:
/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
$stmt->execute();
/* bind variables to prepared statement */
$stmt->bind_result($col1, $col2);
bind_param()
而不是使用bind_result()
,否则您仍需要执行该声明。手册中的示例:
/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
/* bind parameters for markers */
$stmt->bind_param("s", $city);
/* execute query */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($district);
参考文献:
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告应仅在暂存时完成,而不是生产。