您好,我只是想做这个php/sql查询,我试图输入一个以上的记录在同一时间使用此代码,但它只输入一个,而不是其他…
代码:
<?php
$results=$_POST['results'];
$day=$_POST['day'];
$lmID=$_POST['lmID'];
$cID=$_POST['cID'];
$count_cID = count($_POST['cID']);
for($i=0;$i<$count_cID ;$i++){
$_results = mysql_escape_string($results[$i]);
$_day = mysql_escape_string($day[$i]);
$_lmID = mysql_escape_string($lmID[$i]);
$_cID = mysql_escape_string($cID[$i]);
$sql = mysql_query("INSERT INTO Club (results, day, lmID, cID) VALUES ('$_results', '$_day', '$_lmID', '$_cID')");
$result = mysql_query($sql);
}
?>HTML表单:
League Match ID:
<?php echo $lmID;?> <input type="hidden" name="lmID[]" value="<?php echo $lmID; ?>" >
Competitor ID:
<?php echo $cID;?> <input type="hidden" name="cID[]" value="<?php echo $cID; ?>" >
Result:
<input type="text" name="results[]">
Day:
<input type="text" name="day[]">
<input type="submit" name="submit">
</form>发布于 2014-03-17 22:02:14
$sql = mysql_query("INSERT INTO Club (results, day, lmID, cID) VALUES ('$_results', '$_day', '$_lmID', '$_cID')");
$result = mysql_query($sql);应该是:
$sql = <<<EOF
INSERT INTO Club (results, day, lmID, cID)
VALUES ('{$_results}', '{$_day}', '{$_lmID}', '{$_cID}')
EOF;
$result = mysql_query($sql);正如在其他评论中提到的,请不要使用mysql_数据库函数-使用PDO或mysqli_函数。mysql_query被弃用(这是有充分理由的)。对于其他库,您的语句似乎也是PREPARE后跟EXECUTE的候选语句。例如,使用PDO...
$sql = <<<EOF
INSERT INTO Club (results, day, lmID, cID)
VALUES (?, ?, ?, ?)
EOF;
$stmt = $db->prepare( $sql);
for($i=0;$i<$count_cID ;$i++){
// escape your data here - you might not need to with PDO
$result = $stmt->execute( array( $_results, $day, $_lmID, $_cID));
}发布于 2014-03-17 22:05:45
确保$count_cID大于1(1)。但看起来并不是这样。我之所以提到这个变量,是因为您正在将$i与它进行比较,并且在您的for循环中,如果它不大于1,那么循环内容将只执行一次,因为在第二次尝试时,条件将不再有效。
https://stackoverflow.com/questions/22456171
复制相似问题