【发布时间】:2011-11-14 23:26:04
【问题描述】:
我的代码正在从另一个表中获取 ID,在获得该 ID 后,我会将其插入到另一个表中。问题是它不起作用,知道为什么吗?
<?php
session_start();
include("Connection.php");
if (isset($_POST['submit'])){
$name = $_POST['customerName'];
mysql_query("INSERT INTO `starbucks`.`orders` (
`ID` ,
`NAME` ,
`TOTAL_PRICE` ,
`TOTAL_ITEMS` ,
`TIME`
)
VALUES (
'' , '$name', '', '',NOW())");
$_SESSION['user'] = $name;
}
$dTime = time();
$myValue = isset($_REQUEST['dValue']) ?$_REQUEST['dValue'] : '';
echo "The time is: {$dTime}<br/>
The choice is {$myValue} ";
$sql = "Select * from product where NAME = '{$myValue}'";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)){
$price = $row['PRICE'];
$id = $row['ID'];
echo $id;
$sql2 ="INSERT INTO starbucks`.order_details (ID, ORDER_ID, PRODUCT_ID, QTY) VALUES ('', '', '$id', '1')";
$result2 = mysql_query($sql2);
}
?>
【问题讨论】:
-
查询中的单个`(反勾号)在做什么?
-
不,将变量替换为 SQL 字符串的方式非常不安全。
-
@Dagon 是对的(应该写一个答案而不是评论)。 INSERT 查询有一个不平衡的反引号,这将阻止它工作。执行 SQL 语句后应检查
mysql_error()! -
其他警告您代码中的 SQL 注入漏洞。如果您想了解该建议,请阅读我的演示文稿SQL Injection Myths and Fallacies。
-
这只是一种练习,我们的教授还没有教我们,所以请多多包涵