在PDO上执行错误

时间:2016-03-03 19:25:44

标签: php mysql pdo

我一直试图用我的代码弄清楚问题。

在一个文件中我有这个:

$dbConnect->openDbConnection();
$dbExec = $dbConnect->conn->prepare("SELECT nome, direc FROM condoInfo WHERE idCondo = " + $condoInfo);
$dbExec->execute();

结果我得到:语法错误或访问冲突:1064您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“1”附近使用正确的语法

这里有什么问题?因为我不太了解它

2 个答案:

答案 0 :(得分:3)

首先,连接不正确。您在php而不是.中使用+来连接。接下来,使用预准备语句,您应该通过参数化查询绑定用户输入。我们来看看:

$dbExec = $dbConnect->conn->prepare("SELECT nome, direc FROM condoInfo WHERE idCondo = :id");
$dbExec->bindParam(':id', $condoInfo, PDO::PARAM_INT);
$dbExec->execute();

这将确保您的用户数据正确清理。

答案 1 :(得分:0)

最好在单独的变量中定义查询,然后像这样使用它。

 $query = "SELECT nome, direc FROM condoInfo WHERE idCondo = " . $condoInfo;
 $dbConnect->openDbConnection();
 $dbExec = $dbConnect->conn->prepare($query);
 $dbExec->execute();

单独打印查询,并通过在db提示符下运行查询来检查查询中是否有任何错误。

 echo $query ;