Php 凯普得到了;查看与您的MySQL服务器版本对应的手册,以了解使用near''';)';在1号线
我知道有一些帖子接近我在这个PHP查询中遇到的错误,但我还没有找到任何能真正回答我问题的帖子。我正在使用一个MYSQL数据库,并尝试使用这里显示的一个简单脚本输入数据Php 凯普得到了;查看与您的MySQL服务器版本对应的手册,以了解使用near''';)';在1号线,php,mysql,sql,connect,Php,Mysql,Sql,Connect,我知道有一些帖子接近我在这个PHP查询中遇到的错误,但我还没有找到任何能真正回答我问题的帖子。我正在使用一个MYSQL数据库,并尝试使用这里显示的一个简单脚本输入数据 include("includes/DbConnection.php"); global $connect; $name = $_POST['name']; $year = $_POST['year']; $description = $_POST['about']; $query = "
include("includes/DbConnection.php");
global $connect;
$name = $_POST['name'];
$year = $_POST['year'];
$description = $_POST['about'];
$query = "INSERT INTO object (Name, Year, Description) VALUES ('{$name}',{$year},'{$description}')";
$query = mysql_query($query, $connect);
if(!$query){
die("Database Query Failed: " . mysql_error());
}
当我运行脚本时,我得到一个错误
您的SQL语法中有一个错误;请查看与MySQL服务器版本对应的手册,以了解在第1行“)”附近使用的正确语法,但我找不到该脚本不起作用的任何原因。我遗漏了什么吗?年份列的类型是什么?是整数吗?如果没有,则将值放在单引号中,如下所示“{$year}”
。根据@minitech escape user data的建议,在使用mysql\u real\u escape\u string
存储到数据库之前,您的描述是否包含撇号?无论如何,您在这里完全容易受到SQL注入的攻击!使用mysql\u real\u Escape\u string
和(int)
对输入进行转义和强制转换。然后删除mysql,因为它已经被弃用了,而且一般来说并不安全,使用PDO进行参数化查询Year是数据库中的一个整数。