带参数的PHP MySQL查询因参数而返回sytax错误

时间:2015-08-08 18:33:41

标签: php mysql

我在php中有以下代码:

$id=1;
    $query = 'select id from role_perm where perm_id = :id';
    if($statement =$GLOBALS["DB"]->prepare($query)){
    $result =& $statement->execute(array(':id' => $id));
    $t = $result->fetch_all();

但是当我尝试运行此代码时出现错误:

  

1064您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近':id'在第1行

我在互联网上查看了很多问题和信息,试图用不同的方式表达我的陈述,但我总是最终得到这样的错误,我试过了吗?对于参数也是。如何让它识别参数? 我的数据库配置:

$databaseConnection = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if ($databaseConnection->connect_error)
{
    die("Database selection failed: " . $databaseConnection->connect_error);
}
// Create tables if needed.
prep_DB_content();
$GLOBALS['DB'] = $databaseConnection ;

1 个答案:

答案 0 :(得分:2)

$query = 'select id from role_perm where perm_id = ?';
if($statement = $GLOBALS["DB"]->prepare($query)){
   $statement->bind_param("i", $id);
   $statement->execute();
   $statement->store_result();
   $statement->bind_result($id_result);
   while ($statement->fetch()) {
       // code here
   }
   $statement->close();
}