我想把它放到数据库中。然而,我收到一个意外的错误,但是,说:查询失败!您的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