簡體   English   中英

MySQL查詢語法錯誤?

[英]mySQL query syntax error?

我在wordpress網站上有聯系表格,該表格由ajax發送並發送到我的郵件中。 我還想將結果保存在數據庫中,所以我編寫了此查詢,但是它給了我和語法錯誤,但是在此代碼中我找不到任何錯誤:

<?php 
$con = mysql_connect("localhost","username","password");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("u31272B3", $con);

$sql="INSERT INTO wp_contactform (Nimi, Puhelin, E-mail, Viesti, IP, Day)
VALUES
('$_POST[Nimi]','$_POST[Puhelin]','$_POST[Sposti]','$_POST[Tiedot]','$_POST[Gotcha]','$_POST[Day]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con);

?>

發送它的jquery腳本可以正常工作,並且郵件已發送,但這不能保存。

用反引號(`)引用列名稱“電子郵件”。 目前,MySQL分兩部分進行解釋。

還請注意,(根據我的評論)您的代碼對SQL注入攻擊非常開放。 最好使用適當參數化的SQL查詢。


SQL注入示例:

"INSERT INTO table (field) VALUE ('$_POST[var]')"

如果您發布值"'; DROP TABLE table; --"那么您將擁有一個有效的SQL字符串,該字符串將插入一個空字符串,然后嘗試刪除該表。 替換您想要的任何有害聲明。

並且您還應該使用mysql_real_escape_string()或准備好的語句。 如果您的查詢數據有任何特殊字符,它可能會吹響您的查詢,這也可以幫助您進行sql注入。

http://php.net/mysql_real_escape_string http://php.net/pdo

您的SQL請求應編寫如下:

$sql = "INSERT INTO wp_contactform (`Nimi`, `Puhelin`, `E-mail`, `Viesti`, `IP`, `Day`)
        VALUES
        ('$_POST[Nimi]','$_POST[Puhelin]','$_POST[Sposti]','$_POST[Tiedot]','$_POST[Gotcha]','$_POST[Day]')"

使用非字母數字字符的SQL字段必須使用反引號( ` )進行轉義。

這應該工作

<?php
$con = mysql_connect("localhost", "username", "password");
if(!$con){
    die('Could not connect: '.mysql_error());
}

mysql_select_db("u31272B3", $con);

$sql = "INSERT INTO wp_contactform (`Nimi`, `Puhelin`, `E-mail`, `Viesti`, `IP`, `Day`)
VALUES
('".mysql_real_escape_string($_POST['Nimi'])."','".
   mysql_real_escape_string($_POST['Puhelin'])."','".
   mysql_real_escape_string($_POST['Sposti'])."','".
   mysql_real_escape_string($_POST['Tiedot'])."','".
   mysql_real_escape_string($_POST['Gotcha'])."','".
   mysql_real_escape_string($_POST['Day'])."')";

if(!mysql_query($sql, $con)){
    die('Error: '.mysql_error());
}
echo "1 record added";

mysql_close($con);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM