【发布时间】:2012-07-09 21:13:06
【问题描述】:
我是 PHP 和 MySQL 查询构造的新手。我有一个大型处理器。一些字段是必需的,大多数字段是用户可选的。在我的例子中,HTML id 和 MySQL 列名是相同的。我找到了有关使用数组将 $_POST 转换为 INSERT INTO 的字段和值的教程,但我无法让它们工作 - 很多小时后。我已经退后一步,使用数组和变量制作了一个非常简单的 INSERT,但我仍然很难过。以下行有效并将 5 个项目插入到具有 100 多列的数据库中。前4项为字符串,第5项monthlyRental为整数。
$query = "INSERT INTO `$table` (country, stateProvince, city3, city3Geocode, monthlyRental) VALUES ( '$country', '$stateProvince', '$city3', '$city3Geocode', '$monthlyRental')";
当我为字段创建一个数组并使用它时,如下:
$colsx = array('country,', 'stateProvince,', 'city3,', 'city3Geocode,', 'monthlyRental');
$query = "INSERT INTO `$table` ('$colsx') VALUES ( '$country', '$stateProvince', '$city3', '$city3Geocode', '$monthlyRental')";
我收到一个 MySQL 错误 - 请查看与您的 MySQL 服务器版本相对应的手册,以了解在 ''Array' 附近使用的正确语法) VALUES ('US', 'New York', 'Fairport, Monroe County, New York ', '(43.09)' 在第 1 行。无论数组项在单引号内是否有逗号,我都会收到此错误。我已经阅读了大量内容并尝试了很多组合,但我无法得到它。我想要在我回到 foreach 表达式来处理 $_POST 之前,在小范围内查看正确的语法,并且字段和值都是数组。是的,我知道我应该使用 mysql_real_escape_string,但这是 foreach 的一个简单的后续步骤。最后,一些关于值数组语法的线索会很有帮助,特别是如果它与字段数组不同。我知道我需要添加一个 null 作为第一个数组项来触发 MySQL 自动增量 ID。还有什么?
我是新手,所以请具体一点。
【问题讨论】: