你真的應該升級到PDO
或mysqli
。 mysql API已經被棄用了一段時間,並將在下一版PHP(7)中被刪除。
爲了回答您的實際問題國際海事組織第一個步驟應該是使數據理智,即:
$data = [
[
'name' => 'Jack',
'country' => 'London',
],
[
'name' => 'John',
'country' => 'Greece',
],
[
'name' => 'Fiona',
'country' => 'Japan',
],
];
這使得它更容易處理和維護數據。
接下來你只需要遍歷一個數組:
$entry = ' went to school';
foreach ($data as $item) {
$sql = mysql_query("INSERT INTO bilgi (name,entry,country) VALUES ('$item[name]','$item[name]$entry','$item[country]'");
}
然而,這仍然使用舊的API,並不能防止SQL漏洞。你應該做的(making a database connection proper後):
$entry = 'went to school';
$stmt = $pdo->prepare('INSERT INTO bilgi (name,entry,country) VALUES (:name, :entry, :country');
foreach ($data as $item) {
$stmt->execute([
'name' => $item['name'],
'entry' => $entry,
'country' => $item['country'],
]);
}
我也從輸入字段刪除name
,因爲這是重複的數據庫中的一個糟糕的方式。如果名稱發生更改,則您在entry
列中的名稱被卡住。
這使用了一個非棄用的API。防止SQL注入漏洞,並且更加理智和可維護。插入到數據庫之前
$name = array("Jack", "John", "Fiona");
$country = array("London", "Greece", "Japan");
$entry =' went to school';
$values;
for ($i = 0; $i < count($name); $i++) {
$values[] = "('$name[$i]', '$name[$i]$entry', '$country[$i]')";
}
$sql = 'INSERT INTO bilgi (name, entry, country) VALUES ';
for ($i = 0; $i < count($values); $i++) {
$sql .= $values[$i];
if($i < (count($values) - 1)) $sql .= ", ";
}
$result = mysql_query($sql);
你的陣列請小心:
非常感謝。它非常有用,爲我工作。 –