gpt4 book ai didi

php - MySQL转义字符串问题

转载 作者:行者123 更新时间:2023-11-29 03:12:58 25 4
gpt4 key购买 nike

在某些 PHP 代码中,我有一个 mysql_real_escape_string() 术语,例如 foo\'s。我在我的数据库中搜索它(它也存储为 foo\'s),如下所示:

mysql_query("SELECT * FROM coupons WHERE retailerName LIKE '%" . $searchTerm . "%'");

没有变量的查询应该是这样的:

SELECT * FROM coupons WHERE retailerName LIKE '%foo\'s%'

如果我搜索 ffofoo,则搜索有效。但是,如果我搜索 foo's,则搜索不起作用(请记住,实际查询采用转义字符串,因此所有内容都应匹配)。

最佳答案

也许您编程到 mysql(JDBC 或类似)的接口(interface)正在向您的字符串添加额外的转义字符。如果将数据放入数据库的机制不是同一机制,请尝试插入以查看数据是如何存储的。

Mysql可以通过自己的接口(interface)处理查询

mysql> describe test_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| col1 | varchar(20) | YES | | NULL | |
| col2 | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

mysql> insert into test_table (col1, col2) values ('col1value', 'foo\'s');
Query OK, 1 row affected (0.04 sec)

mysql> select * from test_table where col2 like '%foo\'s%';
+-----------+-------+
| col1 | col2 |
+-----------+-------+
| col1value | foo's |
+-----------+-------+
1 row in set (0.00 sec)

关于php - MySQL转义字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5228998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com