Php 检查数组中的元素,如果没有';数据不存在于数据库中
问题出在标题中: 我必须找出数组中是否存在该元素,以及它是否没有将数据放入数据库 代码如下:Php 检查数组中的元素,如果没有';数据不存在于数据库中,php,mysql,sql,arrays,select,Php,Mysql,Sql,Arrays,Select,问题出在标题中: 我必须找出数组中是否存在该元素,以及它是否没有将数据放入数据库 代码如下: $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['
$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.'")');
}
这段代码可以工作,但数据总是插入到数据库中
我怎样才能正确地做呢
谢谢)您获取它的方式错误,然后分配整个数组而不是要分配的元素。应该是这样的
while($login=mysql_fetch_assoc($logins))
{
$logins_array[]=$login["login"]; //add only the relevant value, not the whole array.
}
in_数组应该是这样的
if(!(in_array($_POST['login'],$logins_array))) // without those extra quotes
但是,这段代码非常容易受到
INSERT
的攻击,因为它不起作用((关于数据库:我在sql注入中查看了它,谢谢))还可以像我刚才添加的那样更新in_array
语句。那些引用在那里是无用的。