错误使用插入函数在数据库中插入数据

时间:2015-05-31 13:36:01

标签: php mysql

写的函数也是正确的查询。但是信息不会保存在表用户的数据库中。 这是我打印时的查询。

INSERT INTO 'users' VALUE(NULL,'omardz','bankdz@gmail.com','3a9d086dcf50424fc60ccbc52173d49d','freelancer') 

include('config.php');

//配置文件包括用户,传递,主机,数据库,连接没有任何问题!

function add_new_user($username,$email,$password,$type)
 {
  global $sbr_connect;
  if(empty($username) || empty($email) || empty($password) || empty($type))
    return false;

  $n_username = mysql_real_escape_string(strip_tags($username),$sbr_connect);
  $n_email    = mysql_real_escape_string(strip_tags($email),$sbr_connect);
  $n_password = md5(mysql_real_escape_string(strip_tags($password),$sbr_connect));
  $n_type     = mysql_real_escape_string(strip_tags($type),$sbr_connect);

  $query = sprintf("INSERT INTO 'users' VALUE(NULL,'%s','%s','%s','%s')",$n_username,$n_email,$n_password,$n_type);
  $qresult = mysql_query($query);

  echo $query;

  if(!$qresult)
    return false;

  return true;

  }


$resultt= add_new_user('omardz','bankdz@gmail.com','mououuu','man');
if($resultt) 
{
   echo 'success';
   sbr_db_close();
}

1 个答案:

答案 0 :(得分:2)

您的查询的这一部分:

INSERT INTO 'users'
            ^     ^

您使用的是单引号,而不是正确的identifier qualifiers

删除它们INSERT INTO users

或使用刻度

INSERT INTO `users`

or die(mysql_error())mysql_query()会发出语法错误信号。

旁注:

考虑使用mysqli with prepared statementsPDO with prepared statements他们更安全

参考文献:

关于密码存储。

MD5已经老了,被认为已经坏了。

使用CRYPT_BLOWFISH或PHP 5.5的password_hash()功能。对于PHP< 5.5使用password_hash() compatibility pack

这个sbr_db_close();显然是一个自定义函数,我不知道它是做什么的。所以确保有效。