-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.'")');
} 

此代码有效,但数据始终插入数据库。

我怎样才能正确地做到这一点?

谢谢)

4

1 回答 1

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

考虑加强对数据库的保护,这段代码很容易受到攻击INSERT

于 2013-10-30T07:00:57.257 回答