У меня есть массив с тысячами элементов. Это правильный способ получить его в базе данных:
$connection = mysqli_connect($url, $usr, $pwd, $db) or die('<br><br>Error: ' . mysqli_error() . "<br><br>"); $stmt=mysqli_stmt_init($connection); mysqli_stmt_prepare($stmt,"INSERT INTO Bible_KJV (verse) VALUES(?)"); $out .= "<br><hr><br>"; //Inserting the book in the database for($i = 0;$i < count($lines);$i++) { mysqli_stmt_bind_param($stmt,"s",$lines[$i]); mysqli_stmt_execute($stmt); $versenr = $i+1; $out .= "Verse nr.: $versenr was inserted <br>"; }
Также есть решение для объемной вставки. Если PHP и MySQL используют одну и ту же файловую систему, вы можете сделать что-то вроде:
$filename=.... /* insert a temp filename here */ $connection = mysqli_connect($url, $usr, $pwd, $db) or die('<br><br>Error: ' . mysqli_error() . "<br><br>"); file_put_contents($filename,implode('\n',$lines)); mysqli_query($connection,"LOAD DATA INFILE '$filename' INTO TABLE `Bible_KJV`"); unlink($filename); // cleanup