尝试通过php表单提交更新MySQL中的记录,但我一直收到错误:
更新记录时出错:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在'SET phone ='3609992399'附近使用正确的语法,地址='123 Test Lane',city ='Battle Gr'在第4行
if (isset($_POST['submit'])) {
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$address = $_POST['address'];
$city = $_POST['city'];
$state = $_POST['state'];
$zipcode = $_POST['zipcode'];
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if ($mysqli->connect_errno) {
echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
exit();
} else {
$updateUser = "UPDATE users SET first_name='{$first_name}', last_name='{$last_name}', email='{$email}', phone='{$phone}', address='{$address}', city='{$city}', state='{$state}', zipcode='{$zipcode}' WHERE vendorid='{$user['vendorid']}'";
if ($mysqli->query($updateUser) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $mysqli->error;
}
}
$mysqli->close();
}
我检查了5.5上的文档,一切看起来都很合适。有线索吗?
答案 0 :(得分:0)
您没有很好地阅读文档。
多次使用SET
是不正确的。将其更改为:
UPDATE users SET
first_name='{$first_name}',
last_name='{$last_name}',
email='{$email}',
phone='{$phone}',
address='{$address}',
city='{$city}',
state='{$state}',
zipcode='{$zipcode}'
WHERE
vendorid='{$user['vendorid']}'
从文档中,第二行:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
您还应该了解自己的安全问题。直接从浏览器中将数据放入SQL中并不是一个好主意。