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);
}
}
?>
答
我发现此行为的原因。一些输入字符串有单引号。由于该SQL查询语法失败。使用PHP的real_escape_string()函数。现在它运作良好。谢谢大家
+0
这是防止SQL注入的最烦人的方式。我建议你使用准备好的语句。 –
任何约束?独特的列? –
只是主键与auto_increment –
什么'但有时它不工作.'是什么意思?它说什么,什么时候不工作?哪个是错误? –