查询重复条目的数据库

时间:2012-09-10 16:10:23

标签: php mysql

在添加新邮政编码之前,尝试查看邮政编码是否已存在:

使用空查询,我得到答案NO 有了搜索字段中的任何内容,即使邮政编码不存在,我也会得到答案。

$search=$_POST['search'];
$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes='$search'");
if ($result = $search) {
$search = "yes";
}else{
$search = "no";
}

有什么想法吗? 谢谢。

6 个答案:

答案 0 :(得分:4)

你在这一行使用一个等号:

if ($result = $search)

$result分配给$search而不是比较相等,然后始终返回true。使用==

另外,请听John Woo关于使用COUNTmysql_num_rows的建议:

$search = $_POST['search'];
$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes='$search'");

if (mysql_num_rows($result) > 0) {
    $search = "yes";
}else{
    $search = "no";
}

答案 1 :(得分:2)

尝试使用COUNT

SELECT COUNT(*) FROM `zipcodes` WHERE` zipcodes = 'value'

如果邮政编码不存在,它将返回0。

答案 2 :(得分:0)

在PHP中,您也可以if (mysql_num_rows($result) > 0)

答案 3 :(得分:0)

echo (mysql_errno($db_object) == 1062) ? 'duplicate' : 'unique';

答案 4 :(得分:0)

尝试更改此行

$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes='$search'");

$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes=\"$search\"");

$ search变量不会在单引号

中打印它

答案 5 :(得分:0)

使用

$search=$_POST['search'];
$result = mysql_query("SELECT zipcodes FROM zipcodes WHERE zipcodes='$search'");

if (mysql_num_rows($result) > 0) {

$search = "yes";
}else{
$search = "no";
}