我有一个小应用程序,我收集用户输入并返回一组基于输入的结果。输入是一个邮政编码,例如,pl4 7by。它之间有一个空间。这是数据存储的格式。我希望即使用户输入时没有空格或多个空格,也希望从搜索中返回适用的邮编。MySQL收集结果无论空间
这是目前我所拥有的。
<?php
$input = $_GET["input"] . "%";
try{
$handler = new PDO();
}
catch (PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
$stmt = $handler -> prepare("
SELECT * FROM `LSOA_postcodes` WHERE postcode LIKE :input LIMIT 20
");
$stmt -> execute([
":input" => $input
]);
echo "<table>";
echo "<tr><th>Postcode</th><th>LSOA Code</th><th>LSOA Name</th></tr>";
while($row = $stmt -> fetchObject()){
echo "<tr>";
echo "<td>", $row -> postcode, "</td>";
echo "<td>", $row -> code, "</td>";
echo "<td>", $row -> name, "</td>";
echo "</tr>";
}
echo "</table>";
这是功能和返回结果,无论大小写。我可以存储没有空格的数据,但我希望向用户显示正确的格式。
我使用LIKE,因为我相信这会使其不敏感。这不是这种情况吗? – 2014-09-30 14:42:45
@Darryl不,事实并非如此。大小写(in)的敏感度由[字符串的排序规则](http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html)控制,该函数同时影响“like”和“=”。 – Mureinik 2014-09-30 14:45:53
谢谢。很高兴知道。我还记得我使用LIKE的另一个原因,这是因为我在第2行使用了通配符,以允许用户输入邮编的开头。 – 2014-09-30 14:54:30