DRUPAL PDOException:SQLSTATE [HY093]:参数编号无效:绑定变量的数量与标记的数量不匹配
DRUPAL PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
不知道我哪里做错了?有人可以帮帮我吗?在 Drupal7 自定义模块中执行以下查询时,出现以下错误:
错误:
ResponseText: PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens:
SELECT t.tid AS tid, t.name AS name
FROM
{taxonomy_term_data} t
WHERE (t.vid = :vid) AND (LOWER(t.name) LIKE LOWER('%%:last_string%%'))
LIMIT 50 OFFSET 0;
Array
(
[:vid] => 6
[:last_string] => server
)
代码:
$result = db_select('taxonomy_term_data', 't')
->fields('t', array('tid', 'name'))
->where('t.vid = :vid', array(':vid'=>$vid))
->where("LOWER(t.name) LIKE LOWER('%%:last_string%%')", array(':last_string'=>$last_string))
->range(0, $num_results)
->execute();
如果我直接硬编码 :last_string,
的值,则查询有效
示例:
->哪里("LOWER(t.name) LIKE LOWER('%%server%%')")
非常感谢任何帮助..
尝试只使用一个 %,因为:% 可以替代零个或多个字符。你不需要其中的两个。
LOWER 函数以字符串作为参数,'%:last_string%' 被视为字符串而不是数组的绑定(':last_string'=>$last_string), 这就是当你删除绑定时它起作用的原因。所以尽量不要将 :last_string 放在 LOWER 函数中,因为它不会将其识别为绑定。
不知道我哪里做错了?有人可以帮帮我吗?在 Drupal7 自定义模块中执行以下查询时,出现以下错误:
错误:
ResponseText: PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens:
SELECT t.tid AS tid, t.name AS name
FROM
{taxonomy_term_data} t
WHERE (t.vid = :vid) AND (LOWER(t.name) LIKE LOWER('%%:last_string%%'))
LIMIT 50 OFFSET 0;
Array
(
[:vid] => 6
[:last_string] => server
)
代码:
$result = db_select('taxonomy_term_data', 't')
->fields('t', array('tid', 'name'))
->where('t.vid = :vid', array(':vid'=>$vid))
->where("LOWER(t.name) LIKE LOWER('%%:last_string%%')", array(':last_string'=>$last_string))
->range(0, $num_results)
->execute();
如果我直接硬编码 :last_string,
的值,则查询有效示例: ->哪里("LOWER(t.name) LIKE LOWER('%%server%%')")
非常感谢任何帮助..
尝试只使用一个 %,因为:% 可以替代零个或多个字符。你不需要其中的两个。
LOWER 函数以字符串作为参数,'%:last_string%' 被视为字符串而不是数组的绑定(':last_string'=>$last_string), 这就是当你删除绑定时它起作用的原因。所以尽量不要将 :last_string 放在 LOWER 函数中,因为它不会将其识别为绑定。