我想把它放到數據庫中。然而,我收到一個意外的錯誤,但是,說:查詢失敗!您的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊
查詢失敗!你的SQL語法有錯誤;檢查對應於你的MySQL服務器版本在第1行
這裏附近使用「命令(order_date的,Order_Time,Delivery_Charge,Delivery_Fname,Delivery_Lname,國內配送」正確的語法手冊是我的PHP:
<?php
//error_reporting(E_ERROR | E_PARSE);
include("includes/db.php");
include("includes/functions.php");
if($_REQUEST['command']=='update')
{
$date = date('Y-m-d');
$time = time('H:i:s');
$charge = $_REQUEST['ocharge'];
$fname = $_REQUEST['ofname'];
$lname = $_REQUEST['olname'];
$mobile = $_REQUEST['omobile'];
$add1 = $_REQUEST['oadd1'];
$add2 = $_REQUEST['oadd2'];
$postcode = $_REQUEST['opostcode'];
$state = $_REQUEST['ostate'];
$country = $_REQUEST['ocountry'];
$weight = $_REQUEST['oweight'];
$credit = $_REQUEST['ocredit'];
$pin = $_REQUEST['opin'];
$city = $_REQUEST['ocity'];
$result=mysql_query("insert into order(Order_Date,Order_Time,Delivery_Charge,Delivery_Fname,Delivery_Lname,Delivery_HP,Delivery_Street1,Delivery_Street2,Delivery_Postcode,Delivery_State,Delivery_Country,Total_Weight,Credit_No,Pin_No,Delivery_City) values ('$date',$time,$charge,'$fname','$lname',$mobile,'$add1','$add2',$postcode,'$state','$country',$weight,$credit,$pin,'$city')");
if($result === FALSE)
{
die("Query Failed!".mysql_error().$result);
}
$orderid=mysql_insert_id();
$max=count($_SESSION['cart']);
for($i=0;$i<$max;$i++)
{
$pid=$_SESSION['cart'][$i]['productid'];
$q=$_SESSION['cart'][$i]['qty'];
$price=get_price($pid);
mysql_query("insert into order_detail (Order_ID,Product_ID,Order_Quantity,Sub_Total) values ('$orderid','$pid','$q','$price')");
}
die('Thank You! your order has been placed!');
}
?>
?
有什麼不對查詢
當報告這種問題時,它也有助於「回顯」SQL並在您的問題中提供它(以及PHP代碼),以便我們可以看到錯誤的位置。但是,您提供的PHP很好,這表明您在查詢中存在多個SQL注入漏洞。轉義用戶輸入將是一個好的開始,但參數化(帶有更好的數據庫庫,如PDO)會更好。 – halfer
我應該糾正什麼? –
對於'$ _REQUEST'(或任何用戶輸入)的每次使用,通過['mysql_real_escape_string'](http://www.php.net/manual/en/function.mysql-real-escape-string)運行每一個。 PHP)。確保在使用此函數時連接到數據庫,因爲它需要數據庫連接才能完全工作。閱讀「SQL注入」 - 這是一個漏洞,允許惡意用戶在您的數據庫上執行未經授權的SQL(例如刪除行)。 – halfer