繁体   English   中英

MySQL查询不接受PHP中char(32)字段的字符串

[英]MySQL query not accepting string for char(32) field from PHP

我试图用一个简单的where子句在一个表上做一个简单的选择。 基本上:

$query = "Select * from devices where device_id = 'abcdefghijklmnopqrstuvwxyz000000'";

当我尝试执行查询时,出现错误

您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册,以在第128行的''附近使用正确的语法

如果我将$id缩短1个字符,则可以使用,或者如果我尝试查询其他字段,也可以。 显然,这与表中存储的数据类型有关。 字段device_id是char(32) ,因此我知道查询的长度是否不会大于该值,但是$id的长度为32。

甚至从phpMyAdmin中的device_id列复制值并将其粘贴为我的php中$id的值也不起作用。 似乎有些可疑...发生了什么,我该如何解决?

我已收到有关更改数据类型的一些评论,并指出“ abcdefghijklmnopqrstuvwxyz000000”太大而无法存储在表中。 但是,事实并非如此。

让我澄清一下我的问题:

存储在数据库中此列中的值为“ abcdefghijklmnopqrstuvwxyz000000”。 我的查询中的值是完全相同的值:'abcdefghijklmnopqrstuvwxyz000000';

两者的strlen均为32,该列的数据类型为char(32)。

为什么表将存储值'abcdefghijklmnopqrstuvwxyz000000',但不允许我查询该值? 这似乎不正确。

Id列的长度很小,以使其具有$id = 'abcdefghijklmnopqrstuvwxyz000005' ,您只需更改列ID数据类型,也许varchar(64)就足够了。

您可能在数据库中输入了错误的值?

您可以检查与你的数据库相同的价值观?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM