2012-05-27 138 views
0

在添加记录之前,我正在经历一些预先检查的奇怪行为。PHP中用于检查记录是否存在的SQL查询

工作原理: 用户可以将记录添加为MBI000000128或MBI128。因为这是指我正在做检查的记录。目前如果MBI128已经存在并且用户尝试添加MBI000000128,它应该返回'记录已存在的消息'。

这是我的问题: 我剥离从MBI000000128到MBI128罚款字符串中的所有零。 我甚至回应,以确保这是正确的。之前或之后没有空格。我把单引号进行仔细检查。

当我打印变量:'MBI28'

在表中的记录存在为'MBI128'

这里是我的SQL查询:

$query = "SELECT * FROM tickets WHERE pbi='$mbi_no_zeroes' "; 

它继续售票添加到表和我不知道为什么:/

有人可以请建议我可以做更多的检查或我可能做什么w荣?

谢谢。

+2

'MBI28' ='MBI128'! – flowfree

+0

ZOMG!我失明了。我不敢相信我看不到那个!谢了哥们。 – greenpool

+0

如果他们提交MBI1028和MBI1280,该怎么办?剥离零使得这两个完全不同的id变得相同。 –

回答

0

尝试:

$mbi_no_zeroes = str_replace("0", "", $mbi_no_zeroes); 
$query = "SELECT * FROM tickets WHERE pbi='$mbi_no_zeroes' "; 

查看更多有关str-replace