我不知道我做错了什么,但我的小更新代码给了我一条错误消息,我无法解决如何解决它。
这是我的代码:
<?php
include('dbconfig.php');
$con = mysql_connect($host, $username, $password) or die(mysql_error()) ;
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db($db, $con);
function sqlEscape($string){
return "'".mysql_real_escape_string($string)."'";
}
if(isset($_POST['submit'])){
$q = "UPDATE records SET `name` = " + sqlEscape($_POST['name']) + ",
`age` = " + sqlEscape($_POST['age']) + ",
`location` = " + sqlEscape($_POST['location']) + ",
`telephone` = " + sqlEscape($_POST['telephone']) + "
WHERE id = $_POST[id]";
mysql_query($q) or die(mysql_error());
}
?>
以下是打印出来的错误消息:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0' at line 1
有人可以看到我出错的地方吗?
感谢您的帮助。
答案 0 :(得分:4)
您正在使用+
运算符添加字符串,用于添加数字。在PHP中,字符串与.
(句点)运算符连接。
$q = "UPDATE records SET `name` = " . sqlEscape(...) . ",
等
答案 1 :(得分:3)
$q = "UPDATE records SET `name` = " . sqlEscape($_POST['name']) . ",
`age` = " . sqlEscape($_POST['age']) . ",
`location` = " . sqlEscape($_POST['location']) . ",
`telephone` = " . sqlEscape($_POST['telephone']) . "
WHERE id = $_POST[id]";
使用“。”而不是“+”来连接PHP中的字符串。