【发布时间】:2014-06-11 05:43:28
【问题描述】:
PHP/SQL 代码:
$sth = $dbh->prepare("SELECT *
FROM `jobs`
WHERE `city` = :city
AND `district` = :district
AND `type` = :type
AND (
CONVERT( `id`
USING utf8 ) LIKE '% :keyword %'
OR CONVERT( `owner`
USING utf8 ) LIKE '% :keyword %'
OR CONVERT( `title`
USING utf8 ) LIKE '% :keyword %'
OR CONVERT( `city`
USING utf8 ) LIKE '% :keyword %'
OR CONVERT( `district`
USING utf8 ) LIKE '% :keyword %'
OR CONVERT( `type`
USING utf8 ) LIKE '% :keyword %'
OR CONVERT( `payrate`
USING utf8 ) LIKE '% :keyword %'
OR CONVERT( `hours`
USING utf8 ) LIKE '% :keyword %'
OR CONVERT( `description`
USING utf8 ) LIKE '% :keyword %'
)
LIMIT 0 , 30");
$sth->bindParam(':city', $city);
$sth->bindParam(':district', $district);
$sth->bindParam(':type', $type);
$sth->bindParam(':keyword', $keyword);
$sth->execute();
似乎我的令牌/变量之一没有正确“绑定”?任何想法/如何纠正?
我猜我需要在某个地方转义才能使变量正常工作,但是我对 PDO 及其布局方式相当陌生。
谢谢。
【问题讨论】:
-
当我的参数值之一是
null、var_dump()你的值:$city, $district, $keyword等时,我通常会得到这个。 -
没有意识到 NULL 值可能会导致这种情况,看起来两种解决方案都解决了问题,谢谢!