我有一些查询,其中包含一些与PDO绑定的参数。这是我的代码:
$sql = "SELECT altezza_pneumatici FROM tbl_catalogo_pneumatici "
. "WHERE sigla_produttore = :marca "
. "AND larghezza_pneumatici = :larghezza"
. "GROUP BY altezza_pneumatici "
. "ORDER BY altezza_pneumatici ASC";
$query = $DBobj->dbConn->prepare($sql);
$query->bindValue(':marca', $marca, PDO::PARAM_STR);
$query->bindValue(':larghezza', $larghezza, PDO::PARAM_STR);
$query->execute();
但它不起作用。我有这个错误:
警告:PDOStatement :: execute():SQLSTATE [HY093]:参数号无效:参数未在 C:\ Users \ mydoc \ Documents \ pjct \ web_gomme_new \ class中定义\ class.Pneumatico.php 在 116
行
有什么问题?我打印了绑定函数中使用的两个变量,它们具有正确的值。
答案 0 :(得分:1)
我无法确定这是否是问题,但您的查询中存在错误。 (缺少空间)。
$sql = "SELECT altezza_pneumatici FROM tbl_catalogo_pneumatici "
. "WHERE sigla_produttore = :marca "
. "AND larghezza_pneumatici = :larghezza[ ]"
. "GROUP BY altezza_pneumatici "
. "ORDER BY altezza_pneumatici ASC";
见后面的括号:larghezza。
您的查询将最终成为" ..和larghezza_pneumatici =:larghezzaGROUP BY altezza_pneumatici ..."。
答案 1 :(得分:0)
您无需拆分SQL查询字符串。
$sql = "SELECT altezza_pneumatici FROM tbl_catalogo_pneumatici
WHERE sigla_produttore = :marca
AND larghezza_pneumatici = :larghezza
GROUP BY altezza_pneumatici
ORDER BY altezza_pneumatici ASC";
很好。每行末尾的空格。这应该可以解决问题。