Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库中转义特殊字符-MySql_Php_Mysql_Database_Escaping - Fatal编程技术网

Php 从数据库中转义特殊字符-MySql

Php 从数据库中转义特殊字符-MySql,php,mysql,database,escaping,Php,Mysql,Database,Escaping,嗨,伙计们,我需要在数据库中搜索像123.456.789这样的数据 即使我只输入了123456789,我如何搜索它? 我需要从数据库中转义特殊字符,这样即使我搜索123456789,它也可以显示像123.456.789这样的值 我的问题是: SELECT * FROM clients WHERE REPLACE(phone, '.', '') LIKE ".$searchtext." 。。。其中searchtext是我要找的号码。它应该返回所有匹配的值,不管存在什么特殊字符。您可以使用MyS

嗨,伙计们,我需要在数据库中搜索像123.456.789这样的数据 即使我只输入了123456789,我如何搜索它? 我需要从数据库中转义特殊字符,这样即使我搜索123456789,它也可以显示像123.456.789这样的值

我的问题是:

SELECT *
FROM clients 
WHERE REPLACE(phone, '.', '') LIKE ".$searchtext."
。。。其中searchtext是我要找的号码。它应该返回所有匹配的值,不管存在什么特殊字符。

您可以使用MySQL的函数:

从my_表中选择*替换my_列,'.',='123456789'; 但是,如果my_列只包含整数,您应该将其更改为MySQL的函数之一。

您可以使用MySQL的函数:

从my_表中选择*替换my_列,'.',='123456789'; 但是,如果my_列只包含整数,您应该将其更改为MySQL的一个。

Replace是最好的函数:

Select * from TableName where Replace(ColumnName,'escaping character','replaced character')='your Search option'
对于您的情况,转义字符为点,替换字符为,搜索选项为“123456789”

替换是执行此操作的最佳功能:

Select * from TableName where Replace(ColumnName,'escaping character','replaced character')='your Search option'
对于您的案例,转义字符为点,替换字符为,搜索选项为“123456789”

@Kiel

这是示例表和查询。请看看这是否能帮到你。不确定你的桌子结构

 CREATE TABLE `clients` (
 `id` int(11) NOT NULL,
 `phone` varchar(255) NOT NULL
 ) ENGINE=InnoDB;

INSERT INTO `test`.`clients` (
`id` ,
`phone`
)
VALUES (
 '1', '123.456.789'
), (
'2', '123.456.785'
);



mysql> select * from clients where replace(phone,'.','') = '123456789'; 
+----+-------------+
| id | phone       |
+----+-------------+
|  1 | 123.456.789 |
+----+-------------+
希望这有帮助

基尔

这是示例表和查询。请看看这是否能帮到你。不确定你的桌子结构

 CREATE TABLE `clients` (
 `id` int(11) NOT NULL,
 `phone` varchar(255) NOT NULL
 ) ENGINE=InnoDB;

INSERT INTO `test`.`clients` (
`id` ,
`phone`
)
VALUES (
 '1', '123.456.789'
), (
'2', '123.456.785'
);



mysql> select * from clients where replace(phone,'.','') = '123456789'; 
+----+-------------+
| id | phone       |
+----+-------------+
|  1 | 123.456.789 |
+----+-------------+

希望这有帮助

您好,我这样做了,但没有成功。这是我的查询:选择*来自REPLACEphone所在的客户端,“.”,如.$searchtext。其中searchtext是我搜索的号码。您好,我这样做了,但没有成功。这是我的查询:从替换电话的客户端中选择*,例如:$searchtext。其中searchtext是我搜索的号码。请共享您的查询。@user868766这是我的查询选择*,来自替换电话“.”的客户端,如.$searchtext。其中searchtext是我要找的号码。它应该返回所有匹配的值,不管存在什么特殊字符。这是我第一次看到规则点被视为特殊字符…:从replacephone“,=”123456789“的客户端中选择*;与我创建的示例数据配合良好。你能给我们看看样本数据/表结构吗?@ @ LVARGO.VigiRo哈哈,我们也考虑“-”请分享你的查询。@ USER 868 766这是我的查询选择*从客户那里替换电话,'.',像.$SuxTeXT。其中searchtext是我要找的号码。它应该返回所有匹配的值,不管存在什么特殊字符。这是我第一次看到规则点被视为特殊字符…:从replacephone“,=”123456789“的客户端中选择*;与我创建的示例数据配合良好。你能给我们看看样本数据/表结构吗?@拉瓦拉维卡里奥哈哈,我们也考虑“-”谢谢!现在我需要替换还有空间,这样我就可以得到123.456.789,123-456-789和123-456-789有什么想法吗?我想在我的查询中添加或,但有没有更简单的方法?我做到了,谢谢!这是我的最后一个查询SELECT*,来自替换电话“.”、“-”、“,”,如“$searchtext.”的客户端。谢谢!谢谢你!现在我需要替换还有空间,这样我就可以得到123.456.789,123-456-789和123-456-789有什么想法吗?我想在我的查询中添加或,但有没有更简单的方法?我做到了,谢谢!这是我的最后一个查询SELECT*,来自替换电话“.”、“-”、“,”,如“$searchtext.”的客户端。谢谢!我想转义角色,但我不能,当我转义时,我有0个结果,-和黑色空间工作。。。但无法从istorie WHERE replaceKeywords,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,中选择id、标题、链接、poza、alt、关键字,如“%$keywords%”-0结果,两个查询为1-test,bla和另一个test,bla未使用,如果从istorie WHERE replaceKeywords,就像“%$keyword%”只给我1个结果一样,查询值测试,blaI想转义字符,但我不能,转义时我有0个结果,带,-和黑色空格。。。但无法从istorie WHERE replaceKeywords,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,中选择id、标题、链接、poza、alt、关键字,如“%$keywords%”-0结果,两个查询为1-test,bla和另一个test,bla未使用,如果从istorie WHERE replaceKeywords,就像“%$keyword%”只给我1个结果一样,查询值test,bla