我一直试图用我的代码弄清楚问题。
在一个文件中我有这个:
$dbConnect->openDbConnection();
$dbExec = $dbConnect->conn->prepare("SELECT nome, direc FROM condoInfo WHERE idCondo = " + $condoInfo);
$dbExec->execute();
结果我得到:语法错误或访问冲突:1064您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“1”附近使用正确的语法
这里有什么问题?因为我不太了解它
答案 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 ;