1

我正在运行的 MySQL 查询引发以下错误

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“desc = 'Enter Description Here'' 附近使用正确的语法

desc 是一个变量 '$desc' 错误表明在 desc 之前有一个额外的 ' 但如果我完全删除 desc 则代码中没有任何内容(如下)它可以正常工作(显然没有更新该部分)它很奇怪,你的非常感谢您的帮助:-)

代码是

//Get the form data
    $title = $_POST['title'];
    $keywords = $_POST['keywords'];
    $desc = $_POST['desc'];



//initialise connection with databse

require_once('../Connections/EliteGrooming.php');
mysql_select_db($database_EliteGrooming, $EliteGrooming);

//Execute the query

mysql_real_escape_string($title, $keywords, $desc);

$query = "
    UPDATE site_settings
    SET site_title = '$title', keywords = '$keywords', desc = '$desc';";

mysql_query($query) or die(mysql_error());
mysql_close();
header('Location: ../admin/site-settings.php?updated'); 
4

2 回答 2

5

desc保留关键字,您必须使用反引号对其进行转义

$query = "
    UPDATE site_settings
    SET site_title = '$title', keywords = '$keywords', `desc` = '$desc';";

但是您的查询很容易受到攻击SQL Injection,请阅读下面的文章,

于 2012-11-17T16:40:48.163 回答
3

您需要像反引号一样转义MySQL 中的保留字desc

UPDATE site_settings
SET site_title = '$title', keywords = '$keywords', `desc` = '$desc';";
于 2012-11-17T16:40:42.390 回答