2011-03-24 108 views
0

这是我的数据库结果没有预期的if/else

督促 - ID,标题,代码

UNAME - ID,电子邮件,名称,代码

======== edited ============ 

问题:

当我使用[email protected] 我总是得到回应1 - 这意味着它的工作

当我使用[email protected] 我可以一遍又一遍地添加同样的产品,总是得到响应2 - 这意味着什么是错的。

有什么想法?

谢谢

编辑==只是修复代码并粘贴一次。 我没有语法错误。

再次编辑。

现在正在进行一些sql修改。首先尝试使用PHP必须学习更多.. 不能一个一个地提到你的名字..但是,再次,谢谢!

+2

您在这里缺少'$'if(user2 ==“email”)' – xzyfer 2011-03-24 13:54:24

+0

您错过了'else'块中的一些大括号和引号。 – David 2011-03-24 13:57:08

+0

只需再次粘贴代码..其实我没有语法错误。 – joe 2011-03-24 14:13:35

回答

0

如果0 int值比较一个字符串值,不是一个数字,结果永远是真正的

if(0 == "Hello") -> true 

因为丧气从字符串到int返回true(0)0 == 0总是真正

编辑:没关系啊,你只是错过了$ -.-

+0

但为什么[email protected]总是工作,但没有与[email protected]?这使我感到困惑:( – joe 2011-03-24 14:12:51

+0

我敢打赌,你没有在你的数据库中使用email1,你正在做一些非常奇怪的事情,在数据库中搜索一封电子邮件,然后将你收到的电子邮件与你查找的电子邮件进行比较,所以如果电子邮件不在数据库中,第一个检查是错误的,如果东西检查是真的,你会得到响应2 – sharpner 2011-03-24 14:15:05

+0

我有我的数据库上的[email protected]使用相同的产品代码,而[email protected]有独特的产品代码我不能使用[email protected]添加同样的产品[奇怪] – joe 2011-03-24 14:18:01

0

这是什么应该做的?

if (user2 == "email") 

你需要一个前user$"email"$email,对不对?

此外,sql注入的代码已经成熟。 在将它们放入查询(更多信息:Protect against SQL injection)之前,用mysql_real_escape_string转义所有输入变量。

+0

我知道,我的代码粘贴错误,只是修复它 – joe 2011-03-24 13:58:19

+0

谢谢sql注入警告.. – joe 2011-03-24 14:04:52

2

@nick rulez说的是真的,你忘了$符号。

编辑:但是,mysql_fetch_array将ALSO返回的结果,如:

Array(
[0] => '[email protected]' 
[1] => 'name' 
); 

你应该尝试使用mysql_fetch_assoc,这将产生与您正在寻找的数组中的键。

Array(
[**email**] => '[email protected]' 
[name] => 'name' 
); 

干杯!

+0

mysql_fetch_array默认生成一个组合数组/散列结构,除非你只特别请求这两种类型之一 – 2011-03-24 14:22:26

+0

你是对的,道歉。但是,只要获取关联数组,基于@joe发布的代码提取。干杯! – fsodano 2011-03-24 14:51:18