Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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返回0行,其中行具有&symbol_Php_Mysql - Fatal编程技术网

Php MySQL返回0行,其中行具有&symbol

Php MySQL返回0行,其中行具有&symbol,php,mysql,Php,Mysql,使用PHP,我尝试使用以下语法从MySQL获取记录 select * from groups where groupname="Soya & Group"; 即使它存在于表中,但仍返回0行。 表中有大量无法手动修改的数据,行中有&运算符,它不返回任何记录。 请帮帮我 $sql = "SELECT * from groups where groupname='Soya & Group';"; if ($result->num_rows > 0) { while

使用PHP,我尝试使用以下语法从MySQL获取记录

select * from groups where groupname="Soya & Group";
即使它存在于表中,但仍返回0行。 表中有大量无法手动修改的数据,行中有&运算符,它不返回任何记录。 请帮帮我

$sql = "SELECT * from groups where groupname='Soya & Group';";
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {    
    $result = $conn->query($sql);
    echo "<td>ID ".$row["id"]."</td>";
    echo "<td>ID ".$row["groupname"]."</td>";
        }

    } else {
        echo "0 results";
    }

这篇评论太长了

人们非常怀疑符号是问题所在。但是,您可以使用以下方法轻松测试:

字符将匹配任何内容

更有可能的是,数据库中的数据存在微妙的问题。查看其中一个是否返回任何内容:

where groupname like '%Soya _ Group%';
where groupname like '%Soya&Group%';
where lower(groupname) like '%soya%group%';

可能会发生很多不同的事情。例如,您的默认排序规则可以区分大小写,并且值可以是Soya&group。还有其他的可能性。一旦找到匹配项,您可以调查实际值以确定发生了什么。

感谢大家的支持。我使用以下查询替换了MySQL表中的&和

UPDATE groups set groupname=REPLACE(groupname,'&','and');

这个问题解决了我的问题

猜测1:&实际上存储为&;在表中。Soya&Group如何保存在数据库中?如果无法直接检查数据库以查看Soya&Group的存储方式,只需执行以下操作:从组中选择*并记录每个组名,以查看其实际存储方式。是,Soya&Group保存在表中。它不是&;好的,如果是这样的话,您可以分享与该查询相关的php代码吗?可能错误在其他地方。我正在使用PMA,通过从PMA复制精确值,尝试从查询窗口运行相同的查询,但仍返回0行。行中存储的确切值与我尝试获取的值相同。
UPDATE groups set groupname=REPLACE(groupname,'&','and');