PHP编写的声明不起作用

时间:2016-07-24 10:10:21

标签: php mysql mysqli prepared-statement

我正在用PHP编写一个准备好的语句,我的代码很好,直到我在参数中添加'id'和'key'。他们肯定也在我要求的表格中。怎么了?提前致谢!

  

错误:在布尔值

上调用成员函数bind_param()
    if($_POST['userx']){
 echo '<div id="div2"><div id="font2">Dashboard</div>';
$queryA = "SELECT name,profo,password,id,key FROM collegestudents WHERE email = ?";
    $stmt = $connection->prepare($queryA);
          $stmt->bind_param('s',$_POST['userx']);
     $stmt->bind_result($name1,$profo,$password1,$key,$id);
  $stmt->execute();
   $stmt->fetch();
    $stmt->close();

3 个答案:

答案 0 :(得分:2)

Key是mysql中的保留关键字。

将字段名称和表名封装在查询中的反引号中是一个好习惯,但也要检查错误。

1*9 + 3*6 + 6*4 = 51

答案 1 :(得分:0)

boolean(false)

返回$stmt = $connection->prepare($queryA); if (!$stmt) { echo "failed to run"; } else { $stmt->bind_param('s',$_POST['userx']); $stmt->bind_result($name1,$profo,$password1,$key,$id); $stmt->execute(); $stmt->fetch(); }

确保您的查询正确

你可以像这样做一个简单的检查

$stmt = $conn->prepare("SELECT name,profo,password,id,key FROM 
collegestudents WHERE email = :email");
    $stmt->bindParam(':email', $email);

修改 如果你使用的是PDO,那你就错了它应该是这样的

db.close

答案 2 :(得分:-1)

使用

更改数据库连接文件

<?php $con = new PDO('mysql:host=127.0.0.1;dbname=yourdatabasename;','username',''); ?>

然后更改下面的行

$queryA = "SELECT name,profo,password,id,key FROM collegestudents WHERE email = ?";
 $stmt = $connection->prepare($queryA);
 $stmt->bind_param('s',$_POST['userx']);
 $stmt->bind_result($name1,$profo,$password1,$key,$id);
 $stmt->execute();

$queryA = "SELECT name,profo,password,id,key FROM collegestudents WHERE email = :v";
 $stmt = $connection->prepare($queryA);
 $stmt->execute( array('v' => $_POST['userx']) );