错误发布到mysql

时间:2014-01-07 13:14:49

标签: php mysql database

我是php新手,这是我的第一个脚本:

function tinyf_users_add($name,$password,$email,$isadmin)
    {
      global $tf_handle;
      // define area
      $name = trim($name);
      $password = trim($password);
      $email = trim($email);
      $isadmin = trim($isadmin);
      $n_email= mysql_real_escape_string (strip_tags($email),$tf_handle);
      $n_pass = md5($password);
      $n_name = mysql_real_escape_string (strip_tags($name),$tf_handle);
      $n_iseadmin = abs(intval($isadmin));

      // check if not empty data
      if ((empty($name)) || (empty($password)) || (empty($email)) || (empty ($isadmin)))
          return false;
      else if (!filter_var($n_email,FILTER_VALIDATE_EMAIL)) // check if valid email
          return false;
      else{
          $query = sprintf("INSERT INTO `users` (NULL, '%S', '%s', '%s', '%d')",$n_name,$n_pass,$n_email,$n_iseadmin);
          $qresult = mysql_query($query);
          if (!$qresult){
              return false;
          }
      else{
              return true;
          }
      }
    }

这是添加功能但是当我使用函数

时它不起作用
tinyf_users_add('yanal','ss','ss@ss.ss',0);

无效

db connect code

<?php
  $tf_host = 'localhost'; 
  $tf_dbname = 'tinyforum'; 
  $tf_username = 'root'; 
  $tf_password = 'root'; 
  $tf_handle = @mysql_connect($tf_host,$tf_username,$tf_password);   
  if (!$tf_handle) 
    die('conn filad ');
  $tf_db_result = mysql_select_db($tf_dbname); 
  if (!$tf_db_result){
    die ('filed');
  } 
  @mysql_query("SET NAMES 'utf8'"); 
  function tinyf_db_close()
  {
    global $tf_handle;
    @mysql_close($tf_handle);
  } 
?>

3 个答案:

答案 0 :(得分:2)

在您的插入查询中,您忘记了Values子句添加:

$query = sprintf("INSERT INTO `users` VALUES (NULL, '%S', '%s', '%s', '%d')",$n_name,$n_pass,$n_email,$n_iseadmin);
                                     ^^^ add here
  

注意:不要使用mysql_ *,因为它已被弃用。

答案 1 :(得分:0)

您的SQL查询错误。您需要在值之前指定字段:

试试这个:

$query = sprintf("INSERT INTO `users` (`field1`,`field2`,`field3`,`field4`,`field5`) VALUES (NULL, '%S', '%s', '%s', '%d')",$n_name,$n_pass,$n_email,$n_iseadmin);

答案 2 :(得分:0)

您可以试试吗,您错过了在查询中添加values

$query = sprintf("INSERT INTO `users` (`name`,`password`,`email`,`isadmin`) values ('%s', '%s', '%s', '%d')",
                 $n_name,
                 $n_pass,
                 $n_email,
                 $n_iseadmin);
$qresult = mysql_query($query, $tf_handle) or die(mysql_error());