【发布时间】:2015-08-08 06:12:27
【问题描述】:
有02 表称为item 和customer。
item(item_id, item_name)
customer(cus_id, iid, cus_name)
我只是尝试将item_id 从item 存储到customer 中的iid。
但它总是显示null 值。
我的数据库是item_sales。
这是我的 PHP 代码
<html>
<title></title>
<head></head>
<body>
<?php
$hostname = "localhost";
$database = "item_sales";
$username = "root";
$password = "";
$con = mysql_pconnect($hostname, $username, $password);
error_reporting(0);
?>
<form action="index.php" method="post" enctype="multipart/form-data">
<p>Customer Name : <input type="text" name="cus_name" /><br/><br/> </p>
<p>Select an Item:
<select name="iid">
<?php
$sql = mysql_query("SELECT * FROM item");
mysql_select_db($database,$con);
while($sqlv = mysql_fetch_array($sql))
{ ?>
<option id="<?php echo $sqlv['item_id']; ?>"><?php echo $sqlv['item_name']; ?></option>
<?php } ?>
</select>
</p>
<?php
if(isset($_POST['submit']))
{
$sql2 = "SELECT * FROM item WHERE iid='%item_id%'";
mysql_select_db($database,$con);
$mydata = mysql_query($sql2);
$cus_name = $_POST['cus_name'];
$sql3 = "INSERT INTO customer (cus_id, iid, cus_name) VALUES ('', '$_POST[iid]', '$cus_name')";
mysql_query($sql3);
}
?>
<input type="submit" name="submit" value="Add Sale" />
</form>
</body>
</html>
【问题讨论】:
-
这是非常危险的代码。您允许将 POST 变量直接插入数据库,而无需进行任何验证。这使您的应用程序对 sql 注入开放。
-
尽管如此,不确定问题出在哪里,但我不确定第二个 SQL 的 %item_id% 值设置在哪里。这可能是你的问题。
-
我不知道要更正此代码。但是当我从下拉列表中选择一个选项时,我只想将
item_id从item表存储到customer表中的iid。iid应该链接到item表中的item_id。你能更正这段代码吗? -
哪个值为NULL?新插入的行?
-
这段代码有什么作用? $sql2 = "SELECT * FROM item WHERE iid='%item_id%'"; mysql_select_db($database,$con); $mydata = mysql_query($sql2);