Я пытаюсь поместить это в базу данных. И я получаю неожиданную ошибку, однако, говоря:Ошибка запроса! У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL
Ошибка запроса! У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использовать вблизи 'порядка (order_date, Order_Time, Delivery_Charge, Delivery_Fname, Delivery_Lname, Delive' в строке 1.
Вот мой 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