Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用mysqli\u stmt的正确方法。。。带数组_Php_Mysqli - Fatal编程技术网

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数组,该文件首先使用了分隔符:)谢谢您的建议!很高兴知道这件事!看看我会用什么!