gpt4 book ai didi

mysql - PDO/MYSQL 查询中的括号 ()

转载 作者:行者123 更新时间:2023-11-29 19:18:24 25 4
gpt4 key购买 nike

执行包含 () 的 PDO LIKE 查询时遇到一些问题。

<?php

...

$text_with_parentheses = '%'.$text_with_parentheses.'%'

$sth = $dbh->prepare('SELECT * FROM '.$table.' WHERE alarm LIKE :alarm');
$sth->bindParam(':alarm' , $text_with_parentheses);
$sth->execute();
$response = $sth->fetch();

...

?>

我正在查询的字符串值是警报文本,存储在 varchar utf8_uncode_ci 列中。它看起来像这样:

'ABCD。状态 ABCD (6): (失败)'

看来我不知道如何逃脱括号。通过 PHP/PDO 和直接在 MYSQL 控制台中进行测试。为了进行测试,我直接在 MYSQL 控制台中测试了以下内容

SELECT * FROM `table` WHERE `column`='ABCD. Status ABCD (6): (fail)'

返回 0 个结果。

在 PDO 和 MYSQL 控制台中获得任何结果的唯一方法是:

SELECT * FROM `table` WHERE `column` LIKE 'ABCD. status ABCD%'

但这会返回几个不可行的值。当搜索不包含括号的值时,它工作正常。

大家有什么想法吗?这看起来像是 MYSQL 问题。

最佳答案

无论是在 mysql 字符串中还是在 PDO 中,括号绝对没有任何意义

您的问题是由其他原因引起的。

从数据库中选择现有值并对其进行编码以查看所有不可打印的字符:

echo rawurlencode($value);

然后比较。

正版ABCD。状态 ABCD (6): (失败) 字符串将使

ABCD.%20Status%20ABCD%20%286%29%3A%20%28fail%29

而数据库中的一个则不同。比较并检查差异。

关于mysql - PDO/MYSQL 查询中的括号 (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42578744/

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