[英]sql query only putting in one record not multiple?
嗨,我只是想執行此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>
$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));
}
確保$count_cID
大於1(一)。 它不是,看起來像。 我指的是此變量的原因是您將$i
與它進行比較,並且在for
循環中,如果它不大於1,則循環內容將僅執行一次,因為在第二次嘗試時,條件不會驗證一下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.