2013-10-30 55 views
-1

问题出在标题: 我必须找出数组中是否存在元素,如果它没有把数组数据进入数据库。检查数组中的元素,如果它不存在数据到数据库

下面是代码:

$day = date('Y-m-d H:i:s'); 
$logins_array = array(); 

$logins=mysql_query("SELECT login FROM users"); 

while($login=mysql_fetch_array($logins)) 
{ 
    $logins_array[]=$login; 
} 

if(!(in_array('"'.$_POST['login'].'"',$logins_array))) 
{ 
    mysql_query('INSERT INTO users(login,password,email,reg_data) VALUES ("'.$_POST['login'].'","'.$_POST['password'].'","'.$_POST['email'].'","'.$day.'")'); 
} 

此代码的工作,但数据永远是插入到数据库中。

我该如何正确地做到这一点?

感谢)

回答

1

你取它走错了路,然后分配整个阵列,而不是你想要分配的元素。它应该是这样的

while($login=mysql_fetch_assoc($logins)) 
{ 
    $logins_array[]=$login["login"]; //add only the relevant value, not the whole array. 
} 

而且in_array应该像

if(!(in_array($_POST['login'],$logins_array)))  // without those extra quotes 

数据库虽然的Consider being more protective,这个代码是非常脆弱与INSERT

+0

它不工作((约数据库:我检查了SQL注入,谢谢)) –

+0

也更新你的'in_array'语句就像我刚刚添加的。那些引号在那里没用。 –

相关问题