Php 使用mysqli\u stmt的正确方法。。。带数组
我有一个包含数千个元素的数组。这是将其输入数据库的正确方法吗:Php 使用mysqli\u stmt的正确方法。。。带数组,php,mysqli,Php,Mysqli,我有一个包含数千个元素的数组。这是将其输入数据库的正确方法吗: $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
$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>";
}
$connection=mysqli_connect($url、$usr、$pwd、$db)或die('
错误:'.mysqli_错误()。“
”);
$stmt=mysqli\u stmt\u init($connection);
mysqli_stmt_prepare($stmt,“插入圣经(经文)价值观(?));
$out.=“
”;
//将书插入数据库
对于($i=0;$i<计数($line);$i++){
mysqli_stmt_bind_param($stmt,“s”,$line[$i]);
mysqli_stmt_execute($stmt);
$versenr=$i+1;
$out.=“第三节:$versenr已插入
”;
}
还有一个批量插入解决方案。如果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
$filename=../*在此处插入临时文件名*/
$connection=mysqli_connect($url、$usr、$pwd、$db)或die('
错误:'.mysqli_错误()。“
”);
文件内容($filename,内爆('\n',$line));
mysqli_query($connection,“将数据填充“$filename”加载到表`Bible_KJV`)中”;
取消链接($filename);//清理
还有一个批量插入解决方案。如果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
$filename=../*在此处插入临时文件名*/
$connection=mysqli_connect($url、$usr、$pwd、$db)或die('
错误:'.mysqli_错误()。“
”);
文件内容($filename,内爆('\n',$line));
mysqli_query($connection,“将数据填充“$filename”加载到表`Bible_KJV`)中”;
取消链接($filename);//清理
我有点不确定是否有比为每个元素调用mysqli_stmt_bind_param($stmt,“s”,$lines[$I])更好的方法?我相信这是使用准备好的查询的正确方法(定义一次,重复使用它以提高速度),但我决不是这方面的专家。$stmt=mysqli_prepare($con,'query here')
是您真正需要的。不必初始化语句并分两步准备。我有点不确定是否有比为每个元素调用mysqli_stmt_bind_param($stmt,“s”,$lines[$I])更好的方法?我相信这是使用准备好的查询的正确方法(定义它一次,重新使用它以提高速度),但我决不是这方面的专家。$stmt=mysqli\u prepare($con,'query here')
是您真正需要的。不必初始化语句并分两步准备。实际上,我从一个文件中获得了$lines数组,\n作为分隔符:)感谢您的建议!很高兴知道这件事!看看我会用什么!实际上,我从一个文件中获得了$lines数组,该文件首先使用了分隔符:)谢谢您的建议!很高兴知道这件事!看看我会用什么!