繁体   English   中英

在PHP中添加单引号

[英]Add single quotes in PHP

我已经在以下格式的变量中使用了输入的值:

ny,nj,ct

并存储在此变量中:

$search_crit

然后运行以下命令

$list = explode(',', $search_crit);
array_map(array($dbh, 'quote'), $list);
$sql1 = sprintf('SELECT  `Provider Number`,`Number of Cases` FROM `mytable` where`color` = :colorpicked and `State` in (%s) group by `Provider Number`', implode(',', $list));
$stmt = $dbh->prepare($sql1);
$stmt->bindParam(':color', $colorSel, PDO::PARAM_STR);
$stmt->execute();
$result1 = $stmt->fetchAll(PDO::FETCH_ASSOC);

当我执行不同的查询(而不是状态,而是输入邮政编码)时,此方法很好用,所以我最终得到这样的结果: and 'zipcode' in (45040,45249) 这很好用,因为它们是数字(我想)。

回到上面的代码...如果我尝试使用类似这样and 'states' in (ny,nj,ct)and 'states' in (ny,nj,ct)我会收到错误消息,指出ny不是列。 如果我能以某种方式运行查询,则可以正常工作: and 'states' in ('ny','nj','ct')

最好的方法是什么? 有没有一种简单的方法可以在PHP中插入单引号? 我应该更改查询以使其能够接受可以是任意数字(例如3个状态或15个状态)的状态列表( ny,nj,ct )吗?

感谢@ Ryan_W4588为我指出正确的方向来准备变量。 为了适应这一点,我还必须稍微更改PHP代码。

$list = explode(',', $search_crit);
$newList = "'" .implode("','",$list) ."'";
$sql1 = "SELECT  `Provider Number`,`Number of Cases` FROM `mytable` where`color` = :colorpicked and `State` in ({$newList}) group by `Provider Number`";
$stmt = $dbh->prepare($sql1);
$stmt->bindParam(':color', $colorSel, PDO::PARAM_STR);
$stmt->execute();
$result1 = $stmt->fetchAll(PDO::FETCH_ASSOC);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM