我在尝试使用2个删除列表添加记录时遇到问题。 我有一个名为Urls的表,其中包含url的详细信息。我有一个名为category的表填充下拉列表,我有另一个名为publishers的表,它填充了另一个下拉列表。
$query = 'INSERT INTO url_associations (url_id, url_category_id, approved, url_publisher_id) VALUES ';
foreach ($_POST['types'] as $v){
$query .= "($uid, $v, 'Y', $k), ";
}
$query = substr ($query, 0, -2); // Chop off the last comma and space.
$result = @mysql_query ($query); // Run the query.
if (mysql_affected_rows() == count($_POST['types'])) { // Query ran OK.
echo '<p><b>Thank you for your submission!</b></p>';
$_POST = array(); // Reset values.
} else { // If second query did not run OK.
上面的代码允许我使用类别下拉列表添加数据但是当我尝试将url_publisher_id添加为'海报'作为$ k时,我的解析中一直出现错误。如果有人能够理解我想要实现的目标,那么欢迎你的帮助
答案 0 :(得分:1)
如果$ k变量的值不是整数或浮点数,那么你会得到一个错误,因为在你构建SQL INSERT语句时它需要引用它:
$query .= "($uid, $v, 'Y', '$k'), ";
注意:您的示例中存在一些主要的安全问题。如果您将$ _POST中的用户输入放入SQL而不转义它,那么您就可以让用户运行他们想要在您的数据库上运行的任何SQL命令。
答案 1 :(得分:0)
我添加了一个额外的数组foreach($ _POST [海报]为$ k)
//所以它读取
'foreach($ _POST [types] as $ v) foreach($ _POST [海报]为$ k){`
它完美地执行了。
感谢您的帮助。
肖恩