Php MySQL返回0行,其中行具有&symbol
使用PHP,我尝试使用以下语法从MySQL获取记录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
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');