Mysql插入查询失败

时间:2014-04-17 18:51:01

标签: php mysql insert

我收到以下错误无效的查询:您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在'1683

附近使用正确的语法
INSERT INTO `r10_pull`(`id`, `r10_database_id2`, `repName`, `dateRequested`, `addresspulled`, `status`, `emailAddress`, `type`, `streetStartType`, `streetStartName`, `streetStartDir`, `streetStartCiv`, `streetEndType`, `streetEndName`, `streetEndDir`, `streetEndCiv`, `reportNode`, `systemName`) VALUES ('','$r10_database_id2','$rep','$todaysdate','$address','0','$repemail','$type','$street[streetStartType]','$street[streetStartName]','$street[streetStartDir]','$street[streetStartCiv]','$street[streetEndType]','$street[streetEndName]','$street[streetEndDir]','$street[streetEndCiv]','$reportNode','$systemName')

2 个答案:

答案 0 :(得分:0)

许多错别字 -
1)将空字符串替换为值中的第一个空,
2)从最后一个值中删除]
3)字符串值中也需要单引号

你有18个column名称,现在删除错别字后得到18个值

INSERT INTO `r10_pull`(`id`, `r10_database_id2`, `repName`, `dateRequested`,   `addresspulled`, `status`, `emailAddress`, `type`, `streetStartType`, `streetStartName`, `streetStartDir`, `streetStartCiv`, `streetEndType`, `streetEndName`, `streetEndDir`, `streetEndCiv`, `reportNode`, `systemName`) 
VALUES ('','$r10_database_id2','$rep','$todaysdate','$address',0,'$repemail','$type','$street[streetStartType]','$street[streetStartName]','$street[streetStartDir]','$street[streetStartCiv]','$street[streetEndType]','$street[streetEndName]','$street[streetEndDir]','$street[streetEndCiv]','$reportNode','$systemName')


建议:以上是您问题的直接答案。仍然避免使用mysql_ *函数,因为它们已被弃用。学习mysqli或PDO并开始实施。


使用mysqli_* prepared function -

$mysqli = new mysqli('localhost', 'user', 'password', 'mysampledb');

/* check connection */
if (mysqli_connect_errno()) {
   printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
}

$stmt = $mysqli->prepare("INSERT INTO `r10_pull` (`id`, `r10_database_id2`, `repName`, `dateRequested`,   `addresspulled`, `status`, `emailAddress`, `type`, `streetStartType`, `streetStartName`, `streetStartDir`, `streetStartCiv`, `streetEndType`, `streetEndName`, `streetEndDir`, `streetEndCiv`, `reportNode`, `systemName`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
$stmt->bind_param('ssssssssssssssssss', <-- all 18 variables with comma seperated-->);   // bind $sample to the parameter

/* execute prepared statement */  
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* close connection */
$mysqli->close();

答案 1 :(得分:0)

试试这个 -

INSERT INTO `r10_pull`(`id`, `r10_database_id2`, `repName`, `dateRequested`, `addresspulled`, `status`, `emailAddress`, `type`, `streetStartType`, `streetStartName`, `streetStartDir`, `streetStartCiv`, `streetEndType`, `streetEndName`, `streetEndDir`, `streetEndCiv`, `reportNode`, `systemName`) 
VALUES ('',$r10_database_id2,$rep,$todaysdate,$address,0,$repemail,$type,$street['streetStartType'],$street['streetStartName'],$street['streetStartDir'],$street['streetStartCiv'],$street['streetEndType'],$street['streetEndName'],$street['streetEndDir'],$street['streetEndCiv'],$reportNode,$systemName);