php - 带 % 和 concat 的 PDO 准备语句

标签 php mysql pdo

我正在将 PHP 中的一些 MySQL 查询转换为 PDO 准备好的语句查询。

大多数查询都很简单,但我遇到了一些查询,但我不确定它们应该是什么样子

在我正在转换的常规查询中:

where field ='$type'

进入

where field =:type

并改变

$results->execute();

进入

$results->execute(array('type'=>$type));

场景 1

通常在转换它们时,变量在查询中变成 :type ,但是有了 % ,它就变成 :type% 或 :type'%'

where field like '$type%'

场景 2

使用 concat 时

concat(uuid(),'-$id')

这应该如何处理?当变量前面有 - 时如何处理?

如有任何帮助,我们将不胜感激。

最佳答案

您需要了解的是 a placeholder have to represent a complete data literal only .

因此您的代码将是:

场景 1

在 PHP 中创建带有通配符的搜索字符串,

$type = "$type%";

然后就可以按照通常的方式绑定(bind)它了。

场景 2

只需为 CONCAT() 添加一个参数即可:

concat(uuid(),'-', :id)

关于php - 带 % 和 concat 的 PDO 准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37108035/

相关文章:

php - Javascript 和 PHP5 中的换行符

php - php 中的 throw 和 catch 处理

mysql - 更新时时间戳没有变化

mysql - innodb节省存储空间

PHP匹配主题表和页表

php - Laravel ajax 404 未找到错误

php - Jquery AJAX 附加数据重置

mysql - SQL 从 2 个表中选择并按月分组

php - MySQL 返回 PDO 占位符名称

php - PDO MYSQL_ATTR_USE_BUFFERED_QUERY 不生效