我正在使用PHP和MySQL,我遇到了一个小问题。我试着研究并弄清楚该怎么做,然而,我就是想不通。如果有任何帮助,我将不胜感激。这是我的问题..。
我有3个SQL表:
Customers
cID (primaryKey)
email
name
password
...etc.
Products
pID (primaryKey)
Pname
Ptype
CustomerRequests
requestID(primarykey)
cID (foreign key references customer table)
pID (foreign key references products table)
quantityRequested我有一个HTML表单,我正在用PHP处理它。这类似于请求表单,因此用户登录并填写请求表单。此表单上的字段如下所示:
选择产品名称,选择数量等。这是为例如$quantity=$_POST['quantity']完成的…所以基本上表单数据存储在变量中。
现在,这是我被困住的部分。如何执行SQL INSERT查询,以便数据库知道cID和pID是什么?也就是说,外键值是什么?
例如:
$insert = mysql_query(INSERT INTO CustomerRequests VALUES ('THIS WOULD BE BLANK AS ITS AUTOINCREMENTED PROMARY KEY FOR REQUEST ID','HOW WOULD I GET THE cID AUTOMATICALLY HERE','HOW WOULD I GET THE pID HERE','".$quantity."'))该查询使用INSERT查询将用户输入存储到数据库中。但是,由于PHP和productID是不同表中的外键,我该如何编写customerID查询?
谢谢你的帮助,如果你需要更多的信息,请给我回复。
发布于 2013-02-03 07:56:02
pID应该是已知的,因为您的表单应该使用产品的下拉列表,并将pID用作value。
然后,使用这些值做一个INSERT就很简单了。
<select id="product">
<option value="pid001">Product One</option>
<option value="pid002">Product Two</option>
... etc. ...
</select>您的表单应已包含该关联。
基于Products表中的SELECT查询创建下拉列表。对value使用pID,对内容使用pName。这样,表单中发送的数据就是INSERT中需要的外键。
<?php
/*
* $arrProducts is the result from a query like
* SELECT * FROM Products;
*/
print '<select id="products">';
foreach ($arrProducts as $arrProduct) {
printf('<option value="%s">%s</option>', $arrProduct['pID'], $arrProduct['pName']);
}
print '</select>';
?>类似地,当您让用户登录时,获取他们的cID并将其插入到会话中。
它们很容易被SQL注入。两者都提供参数化查询和准备好的语句。
https://stackoverflow.com/questions/14667853
复制相似问题