このページで、foreach は高速ですが、データベースへのクエリは高速ではないことを学びました。だから私は単一の UPDATE クエリを実行しようとしていますが、うまくいきません:
$array = '';
foreach ($myar as $key => $value) {
$array .= " (name='$value' WHERE lid='$key'), ";
}
$link1 = $db->prepare("UPDATE leyes SET $array");
$link1->execute();
エラーが表示されます: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax
1 つの解決策:
$array = '';
foreach ($myarr as $key => $value) {
$array .= " WHEN '$key' THEN '$value' ";
}
$array .= " ELSE name
END";
$link1 = $db->prepare("UPDATE table SET name = CASE id $array");
$link1->execute();