1

私が実行しているMySQLクエリは、次のエラーをスローします

SQL構文にエラーがあります。2行目の「desc=」「ここに説明を入力」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

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 に答える