您好我只是尝试执行此php / sql查询,我尝试使用此代码一次输入多条记录,但它只进入一条,而不是其他...
CODE:
<?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>
答案 0 :(得分:0)
$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));
}
答案 1 :(得分:0)
确保$count_cID
超过1(一)。它不是,看起来像。我之间引用此变量的原因是您要将$i
与它进行比较,而在for
循环中,如果它不大于1,那么循环内容将是只执行一次,因为在第二次尝试时,条件将不再验证。