PHP脚本有时会将数据插入数据库,有时则不会

时间:2017-02-10 18:11:04

标签: php mysql

我正在编写简单的PHP程序,将学生信息插入到mysql数据库中,并用用户ID回复。这个脚本有时很好用。但有时它不起作用。这种行为的可能原因是什么?如果我的程序有任何错误,请建议更正。下面是我的学生注册脚本和mysql数据库功能。我不擅长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);
        }
    }
?>

1 个答案:

答案 0 :(得分:0)

我找到了这种行为的原因。一些输入字符串有单引号。因为sql查询语法失败。使用PHP的real_escape_string()函数。现在它运作良好。谢谢大家