给出Sql错误“Where Where子句中的未知列”
<?php
require_once('config.php');
$orderId=$_REQUEST['order_Id'];
$orderValue=OrderDetail($orderId,$dbc);
echo '<strong>Name:-</strong>'.$orderValue["order_payment_first_name"].' '.$orderValue["order_payment_last_name"].'<br>';
echo '<strong>Address:-</strong>'.$orderValue["order_payment_address1"].'<br>'.$orderValue["order_payment_address2"].'<br>'.$orderValue["order_payment_city"].' '.$orderValue["order_payment_state"].' '.$orderValue["order_payment_country"].'<br>';
echo '<strong>Email:-</strong>'.$orderValue["order_payment_email"].'<br>';
echo '<strong>Ip:-</strong>'.$orderValue["ip"].'<br>';
?>
我们如何解决此问题以及如何声明选择查询?
答案 0 :(得分:0)
您可以在查询之前添加:
$orderId = '\''.$orderId.'\'';
你需要在变量周围引用,否则mysql认为值$orderId
是列而不是值。
请注意,您应该采取SQL注入的预防措施。一个简单的解决方法是:
$orderId = '\''.addslashes($orderId).'\'';
然而这还不够(见Examples of SQL Injections through addslashes()?)。如果您不知道如何自己做,请使用框架(laravel,codeigniter,zend,...)自动为您安全查询。并且不要忽略SQL注入问题;)