【发布时间】:2019-02-13 14:47:30
【问题描述】:
我想我快到了,但我似乎无法越界。
我有一个表格,其结果以表格格式生成为另一个表格,然后您在此处确认提交。例如:搜索产品,选择数量2(给出两行表格,确认提交)。
提交然后将这些值推送到一个数组中。该数组使用准备好的语句插入到数据库中。这些值很好地传入我的数组(print_r 数组以查看输出),但是它们没有正确插入到数据库中,数组值只是插入了数组值的第一个字母(例如:test 将插入 t)只是第一行,其他值手动设置(例如正确插入日期或状态)。
你能看出我在插入时哪里出错了吗?我尝试了很多例子,这似乎是最接近的。
$date= date("Y-m-d");
$data = array(
'Name' => $_POST['data']['name'],
'Price' => $_POST['data']['price'],
'Something' => $_POST['data']['something'] );
$stmt = $conn->DB->prepare("INSERT INTO Table (
Name, Price, Something, Date)
VALUES(?, ?, ?, ?)");
foreach ($_POST['data']['name'] as $k => $order){
$name = $order['Name'][$k];
$price = $order['Price'][$k];
$something = $order['Something'][$k];
$stmt->bind_param("ssss", $name, $price, $something, $date);
$stmt->execute();
}
echo '<pre>'; print_r($data); echo '</pre>';
数组输出示例:
Array
(
[Name] => Array
(
[0] => Joe
[1] => Blog
[2] => Joe
[3] => Phil
)
[Price] => Array
(
[0] => expensive
[1] => cheap
[2] => extortionate
[3] => worthless
)
[Something] => Array
(
[0] =>
[1] => something
[2] => something
[3] =>
)
)
在这个例子中,我希望在数据库中插入四行,其中包含 joe、昂贵、日期和第一行的任何内容(在某列中)等等。
实际发生的是它插入了四行,并将数组值的第一个字母放在第一行,但除了日期值之外,其他行没有任何内容。例如:j,e,空白,然后是日期。
【问题讨论】: