Php 为什么PDO不绑定我的参数?

Php 为什么PDO不绑定我的参数?,php,pdo,parameters,bind,defined,Php,Pdo,Parameters,Bind,Defined,我有一个查询,其中包含一些与PDO绑定的参数。这是我的代码: $sql = "SELECT altezza_pneumatici FROM tbl_catalogo_pneumatici " . "WHERE sigla_produttore = :marca " . "AND larghezza_pneumatici = :larghezza" . "GROUP BY altezza_pneumatici " . "ORDER BY altezza_pn

我有一个查询,其中包含一些与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]:无效参数编号:第116行的C:\Users\mydoc\Documents\pjct\web\u gomme\u new\class\class.Pneumatico.php中未定义参数


有什么问题?我打印了绑定函数中使用的两个变量,它们的值都正确。

我不能确定这是否是问题所在,但您的查询中有一个错误。(缺少空格)

请参见后面的括号:larghezza


您的查询结果将是“.AND larghezza_pneumatici=:larghezza Group BY altezza_pneumatici…”

不需要拆分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";

很好。每行末尾的空格。这应该可以做到。

实际上,他当前的方法符合常用的命名约定。Zend命名约定:(搜索“字符串连接”)哇,真不敢相信我犯了这个错误D谢谢,这正是我的问题。但一定要通过单击答案旁边的复选标记来接受答案。Stackoverflow喜欢“回答”问题。(否则将被视为永远没有答案)完成。还是谢谢!:D
$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";