这就是我将其更改为的内容,仍然没有 - 没有错误,运行 $_POST 并且没有插入任何内容。
$sql = "INSERT INTO appts (trainer, date, time, name, phone, club, group_key) values (?, ?, ?, ?, ?, ?, ?)";
$q = $db->prepare($sql);
$q->execute(array($train, $_POST['date'], $time, $_POST['name'][$i], $_POST['phone'][$i], $club, $group_key));
我最近切换到 PDO,因为我终于升级了我的主机,我在尝试将多行插入到我的数据库中时遇到问题。如果有人能看到我做错了什么,将不胜感激!
代码试图做什么:形成客户端数量->循环生成一组等于刚输入的客户端数量的输入->将所有这些输入到数据库中(时间只放入第一个,其他时间留空)
if($action == 'group'){
echo "Number of clients: <form method='post'><input type='text' name='num' value='$_POST[num]'><input type='submit' value='Go' name='group'></form>";
if($_POST['group']){
$num = $_POST['num'];
?>
<form method='post'>
<br>
<table>
<tr>
<td>Time:</td>
<td><input type='text' name='time'></td>
</tr>
<tr>
<?
if(!$trainer){
$q = $db->prepare("SELECT name from trainers where club = '$club'");
$q->execute();
echo "<td>Trainer:</td> <td><select name='trainer'><option value=''></option>";
while($row = $q->fetch()){
echo "<option value='$row[id]'>$row[name]</option>";
}
echo "</select></td>";
}
for($i = 1; $i < $_POST['num'] +1; $i++){
echo "
<tr>
<td>Name $i: </td>
<td><input type='text' name='name[]'>
</tr>
<tr>
<td> Phone:</td>
<td><input type='text' name='phone[]'></td>
</tr>
<tr><td><br></td></tr>
";
}
?>
</table>
<input type='submit' name='addgroup'>
</form>
<?
if($_POST['addgroup']){
$group_key = substr(md5(microtime()),rand(0,26),5);
for($i = 0; $i < sizeof($_POST['name']); $i++){
$time = '';
if($i = 0){
$time = $_POST['time'];
}
if($trainer){
$train = $trainer;
}
else{
$train = $_POST['trainer'];
}
$sql = "INSERT INTO appts SET trainer = ?, date = ?, time = ?, name = ?, phone = ?, club = ?, group_key = '$group_key'";
$q = $db->prepare($sql);
$q->execute(array($train, $_POST['date'], $time, $_POST['name'][$i], $_POST['phone'][$i], $club));
}
}
}