"不能通过引用传递参数1"

时间:2015-06-16 12:18:39

标签: php mysqli

我想使用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();

1 个答案:

答案 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

旁注:错误报告应仅在暂存时完成,而不是生产。