0

我是 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')";

我知道我需要添加一个 null 作为第一个数组项来触发 MySQL 自动增量 ID。还有什么?

我很新,所以请具体一点。

4

1 回答 1

4
$query = "INSERT INTO `$table` ('$colsx') etc...

行不通。$colsx 是一个数组,所以你最终要产生的是字面意思

$query = "INSERT INTO `sometable` ('Array')
                                    ^^^^^---yes, it'll literally say "Array"

在执行此操作之前,您必须将数组预处理为字符串,例如

$colsx = array(...);
$col_string = implode(',', $colsx);
$query = "INSERT INTO `$table` ($col_string) etc...";
于 2012-07-09T21:15:11.310 回答