每当我尝试使用以下代码更新表单时,更新都会保持沉默,标题字段中的值为 0,内容字段中的值为先前值。有人可以帮忙吗!!!
管理类.php
更新函数
if( $form_title && $form_content ){
$sql = "UPDATE home_page
SET title = '{$form_title}' AND content = '{$form_content}' WHERE id = {$id}";
echo $sql;
$result = $this->mysqli->query( $sql );
if(!$result){
echo 'Error'. mysqli_error();
return;
}else{
$this->success_message = "Update Successfull";
return;
}
}
admin.php 查看页面
if( isset( $_POST['update'] ) ){
$admin_obj->update($_POST, $id);
}
最佳答案
MySQL 静默地转换您的UPDATE
语句并执行 bool 运算。
服务器读取更新语句为
UPDATE home_page
SET title = ('{$form_title}' AND (content = '{$form_content}'))
WHERE id = {$id}
您要做的是将 AND
替换为 ,
以使其工作。
UPDATE home_page
SET title = '{$form_title}', content = '{$form_content}'
WHERE id = {$id}
作为旁注,查询易受 SQL Injection
攻击如果变量的值(s) 来自外部。请查看下面的文章,了解如何预防它。通过使用 PreparedStatements
,您可以摆脱在值周围使用单引号。
关于php - 更新sql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15599723/