php - Codeigniter(或 PHP)删除部分查询字符串
问题描述
我有一个基于 Codigniter-3.0.4 的网站。ODBC 数据库查询多年来一直运行良好。或者我是这么想的。昨天我发现它只是去掉了查询绑定字符串的所有部分,介于%00
和%1F
(ASCII 控制字符)之间。例如x%11y%z
变成xy%z
.
$sql = "SELECT TOP 100 "
. "D1001 as 'part_number', "
. "D1021 as 'description', "
. "D1063 as 'hs_code' "
. "FROM PULAGER "
. "WHERE "
. "D1001 LIKE ? OR "
. "D1021 LIKE ? "
. "ORDER BY D1001";
$contains = 'x%11y%z';
$sql_result = $this->db->query($sql, array($contains, $contains));
return $this->db->last_query();
回报:
SELECT TOP 100 D1001 as 'part_number', D1021 as 'description', D1063 as 'hs_code' FROM PULAGER WHERE D1001 LIKE 'xy%z' OR D1021 LIKE 'xy%z' ORDER BY D1001
如果我手动用搜索字符串替换问号,它工作正常。但是我不确定不使用查询绑定时的安全问题或其他后果。
关于我应该如何解决这个问题的任何建议?
解决方案
推荐阅读
- css - box-shadow 不会出现在轮播上方
- python - 我怎样才能让球移动得更快?
- regex - 从文本文件的特定列中提取正则表达式模式,然后执行减法
- javascript - $.each 中的重复参数值
- npm - 当我对代码进行一些更改时,NestJs 中的 npm run start:dev 不会重建
- typescript - 打字稿重复导入“时刻”
- python - NoneType 对象没有属性“写”
- angular - ExpressionChangedAfterItHasBeenCheckedError: Expr 在检查后已更改。上一个值:'ngIf: false'。当前值:'ngIf: true'
- c# - 如何通过单击访问单例变量而不导致 NullReferenceException
- regex - Perl 删除匹配正则表达式的多行