她是我的问题,我猜它真的很基础.
我正在尝试在数据库中查找是否存在行.继承我的代码:
$req="SELECT * FROM INSTITUTS WHERE inst_name='$fc_inst'";
$result=mysql_query($req) or die ('Erreur :'.mysql_error());
if (mysql_num_rows($result)){
echo ' name exist';
}
else {
echo ' does not exist.';
}
Run Code Online (Sandbox Code Playgroud)
问题是,当imm寻找"测试"时,它表示不存在,即使我在我的数据库中有"测试".
Nea*_*eal 11
尝试使用LIKE而不是=:
$req="SELECT * FROM INSTITUTS WHERE `inst_name` LIKE '$fc_inst'";
Run Code Online (Sandbox Code Playgroud)
你可以使用LIKE:
WHERE foo LIKE 'bar'
Run Code Online (Sandbox Code Playgroud)
或者您可以使用以下两种方式转换小写:
WHERE LOWER(foo) = LOWER("bar")
Run Code Online (Sandbox Code Playgroud)
LOWER()如果您知道数据库中的所有数据已经较低,那么示例最有效,然后您可以执行:
WHERE foo = LOWER("bar")
Run Code Online (Sandbox Code Playgroud)
这比LIKE你可以小写数据库中的所有数据更便宜.
您的表 COLLATE 设置也可能有问题
即使使用 LIKE 运算符,此 CREATE 语句也将强制您的选择查询区分大小写:
CREATE
table instituts (inst_name VARCHAR(64))
CHARACTER SET latin1 COLLATE latin1_general_cs;
Run Code Online (Sandbox Code Playgroud)
而这将确保不区分大小写:
CREATE
table instituts (inst_name VARCHAR(64))
CHARACTER SET latin1
Run Code Online (Sandbox Code Playgroud)