PHP脚本有时会插入数据到数据库中,有时候不会

问题描述:

我正在写一个简单的PHP程序来插入学生信息到mysql数据库并用用户ID回应。这个脚本有时候效果不错。但有时它不起作用。这种行为有什么可能的原因。如果我的程序有任何错误,请提出修正建议。以下是我的学生注册脚本和mysql数据库功能。我不擅长PHP,请提供更正如果有更多PHP脚本有时会插入数据到数据库中,有时候不会

<?php 
    $username = $_POST['name']; 
    $clgName = $_POST['clg_name']; 
    $branch = $_POST['branch']; 
    $sem = $_POST['sem']; 
    $mobile = $_POST['mobile']; 
    $email = $_POST['email']; 
    $profile_pic_color = $_POST['profile_pic_color']; 
    $deviceId = $_POST['device_id']; 

    include "DatabaseHandler/DBFunctions.php"; 

    $db = new DBFunctions(); 

    $query = "INSERT INTO user_details(user_name, user_clgName, user_branch, user_sem, user_mobile, user_email, profile_color, device_id) values('$username', '$clgName', '$branch','$sem', '$mobile', '$email', '$profile_pic_color', '$deviceId')"; 

    list($result, $mysqli) = $db->select($query); 

    $query = "SELECT MAX(user_id) FROM user_details"; 

    if($mysqli->affected_rows > 0){ 

     list($result, $mysqli) = $db->select($query); 

     $arr = array(); 

     if($result){ 
      $row = $result->fetch_array(); 
      $arr[] = $row; 
      echo json_encode($arr); 
     } 
    } 

?> 

这是我的数据库管理器PHP SCRIPT。

<?php 


    class DBFunctions{ 



     public function connect(){ 
      include "DBConfig.php"; 
       $mysqli = new mysqli($domain, $username, $password, $database); 

      return $mysqli; 
     } 

     public function query($query){ 
       // Connect to the database 
      $mysqli = $this -> connect(); 

      // Query the database 
      $result = $mysqli -> query($query); 

      return array($result, $mysqli); 
     } 

     public function select($query){ 

      $mysqli = $this -> connect(); 

      $result = $mysqli -> query($query); 

      if($result === false) { 
         return false; 
       } 

       return array($result, $mysqli); 
     } 
    } 
?> 
+0

任何约束?独特的列? –

+0

只是主键与auto_increment –

+0

什么'但有时它不工作.'是什么意思?它说什么,什么时候不工作?哪个是错误? –

我发现此行为的原因。一些输入字符串有单引号。由于该SQL查询语法失败。使用PHP的real_escape_string()函数。现在它运作良好。谢谢大家

+0

这是防止SQL注入的最烦人的方式。我建议你使用准备好的语句。 –