我正在尝试编写动态sql查询。该查询可以与整数一起使用。但是,一旦我尝试插入一个字符串,它就会失败。
以下是我的查询:
public function getList($params['SearchBy'])
{
$select = "
SELECT
u.id, u.firstName,u.lastName,u.city";
$from = "
FROM
user u";
$where = "
WHERE
u.live = 1 ";
if(isset($params['SearchBy']))
{
$where .= 'AND '. implode(' AND ', $params['SearchBy']);
}
$GroupBy = "
GROUP BY
u.id ";
$sql = $select.$from.$where.$GroupBy;
}
对于searchby(),我从搜索查询中动态生成这些值;然后将它们放置在数组中:
$this->searchBy[$key][] = $key.' = '. $val;
当它是一个整数时,它可以完美地工作。但是字符串需要有“”。我不确定是否要转义“”,以便它出现在查询中。IE
$this->searchBy[$topkey][] = $key.' = '. "$val";
我尝试这样做,但是没有用:
$this->searchBy[$topkey][] = $key.' = '. \"$val\";
将不胜感激关于如何摆脱它的任何建议。
谢谢你。
以下是从搜索中派生的原始sql查询;
SELECT
u.id,u.picNo,
u.membershipType,
u.firstName,u.lastName
FROM
user u
LEFT OUTER JOIN
table_messages_between_members sm
ON
u.id = sm.senderId
LEFT OUTER JOIN
list_photos_uploaded_by_members ph
ON
u.id = ph.userId
WHERE
u.live = 1 AND u.membershipType = 1 AND u.city = London
GROUP BY
u.id
ORDER BY
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句