在mysql_query中使用多个$ _GET

时间:2012-09-02 11:37:59

标签: php mysql

我在表中有一个链接,它使用以下代码将两个$ _GET变量发送到另一个页面:

echo "<td><a href='somepage.php?del_date=" . $row['del_date'] . "&order_no=" . $row['order_no'] . "'>Details</a></td>";

这似乎有效,因为我能够在另一页上回应这两个。但是我不确定将它们都放入mysql_query所需的语法。我现在有类似的事情:

$result = mysql_query("SELECT panel_product_no, del_quantity
FROM deliveryContainsPanelProduct
WHERE del_date = " . $_GET["del_date"]
AND order_no = " . $_GET["order_no"]);

但这不起作用。我通过使用引号等等尝试了一些变体,但大多数时候页面是空白的,或者最多只显示表格标题但不输出任何结果。我认为这个问题介于WHERE和AND子句之间,但我完全卡住了。

有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:1)

$result = mysql_query('SELECT panel_product_no, del_quantity FROM deliveryContainsPanelProduct WHERE del_date = "' . mysql_real_escape_string($_GET["del_date"]) . '" AND order_no = "' . mysql_real_escape_string($_GET["order_no"]) . '"');

这应该有用。

我还转义了传入的变量,以保护您免受SQL注入。

答案 1 :(得分:0)

$result = mysql_query("SELECT panel_product_no, del_quantity
FROM deliveryContainsPanelProduct
WHERE del_date = " . $_GET['del_date']. " AND order_no = " . $_GET['order_no']);

您忘了打开AND order_no ...

的双引号

是的,如果您已经阅读过评论,那么您应该使用mysqli扩展名为mysql扩展名进行查询。或者,您应该对查询中使用的每个参数使用mysql_real_escape_string()

答案 2 :(得分:0)

$delDate = mysql_real_escape_string($_GET["del_date"]);
$orderNo = mysql_real_escape_string($_GET['order_no']);

$query = "SELECT panel_product_no, del_quantity FROM deliveryContainsPanelProduct";
$query .= " WHERE del_date =" . $delDate;
$query .= " AND order_no=" . $orderNo; 

$result = mysql_query($query) or die("query error");