Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql插入查询,未知错误_Php_Mysql_Sql - Fatal编程技术网

Php Mysql插入查询,未知错误

Php Mysql插入查询,未知错误,php,mysql,sql,Php,Mysql,Sql,我试图使用以下查询将信息插入表中 $sql2 = "INSERT into `djs` (`name`,`pic`,`about`) VALUES (".$row['dj_name'].",".$row['dj_picture'].",".$row['dj_intro'].")"; 每当我尝试这样做时,就会出现以下错误:“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以获取正确的语法使用方法” 导致此错误的原因以及解决方法?您没有在插入的字符串周围加引号: $sql2 =

我试图使用以下查询将信息插入表中

$sql2 = "INSERT into `djs` (`name`,`pic`,`about`) VALUES (".$row['dj_name'].",".$row['dj_picture'].",".$row['dj_intro'].")";
每当我尝试这样做时,就会出现以下错误:“您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以获取正确的语法使用方法”


导致此错误的原因以及解决方法?

您没有在插入的字符串周围加引号:

$sql2 = "INSERT into `djs` (`name`,`pic`,`about`) VALUES     
('".$row['dj_name']."','".$row['dj_picture']."','".$row['dj_intro']."')";

所有值都需要引用(假设它们都是字符串):


即使你的数据来自数据库中的现有数据,你仍然应该考虑。最合适的保护措施是使用,而不是将值连接到查询中。

您需要在插入的值周围加引号。但是你也应该考虑一种更好的插入记录的方法。

$sql2 = "INSERT into `djs` (`name`,`pic`,`about`) VALUES ('".$row['dj_name']."','".$row['dj_picture']."','".$row['dj_intro']."')";

使用
mysql\u real\u escape\u string()
要转义值并将其放在单引号中,请执行以下操作:

$sql2 = "INSERT into `djs` (`name`,`pic`,`about`) VALUES ('".mysql_real_escape_string($row['dj_name'])."', '".mysql_real_escape_string($row['dj_picture'])."', '".mysql_real_escape_string($row['dj_intro'])."')";

要解决眼前的问题,请引用正在添加的变量。但您应该考虑在预处理语句中使用绑定变量,以使编写此类语句更容易、更安全。+1预处理语句
$sql2 = "INSERT into `djs` (`name`,`pic`,`about`) VALUES ('".mysql_real_escape_string($row['dj_name'])."', '".mysql_real_escape_string($row['dj_picture'])."', '".mysql_real_escape_string($row['dj_intro'])."')";