我正在编写简单的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);
}
}
?>
答案 0 :(得分:0)
我找到了这种行为的原因。一些输入字符串有单引号。因为sql查询语法失败。使用PHP的real_escape_string()函数。现在它运作良好。谢谢大家