Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 在数组_push中只能通过引用传递变量_Php_Arrays - Fatal编程技术网

Php 在数组_push中只能通过引用传递变量

Php 在数组_push中只能通过引用传递变量,php,arrays,Php,Arrays,我想在数据库表中插入一百万行,我试图通过在数组中推送值,每次插入1000行 $pdo = new PDO ('mysql:host=localhost;port=3306;dbname=dbname;', 'root', ''); $batch_size = 1000; $sql = "INSERT INTO `table` (`sector`,`keyword`,`location`,`position`) VALUES "; // Add 1,000 value lists $sql .

我想在数据库表中插入一百万行,我试图通过在数组中推送值,每次插入1000行

$pdo = new PDO ('mysql:host=localhost;port=3306;dbname=dbname;', 'root', '');

$batch_size = 1000;

$sql = "INSERT INTO `table` (`sector`,`keyword`,`location`,`position`) VALUES ";
// Add 1,000 value lists
$sql .= str_repeat("(?,?,?,?),", $batch_size-1);
$sql .= "(?,?,?,?),";
$stmt = $pdo->prepare($sql);
for ($i = 0; $i < (1000000/$batch_size); $i++) {
    $vals = array();
    for ($j = 0; $j < $batch_size; $j++) {
    array_push("5","5","5","5"); // <-- error
    }
    $stmt->execute($vals);
}
$pdo=newpdo('mysql:host=localhost;port=3306;dbname=dbname;','root','');
$batch_size=1000;
$sql=“插入到‘表’(‘扇区’、‘关键字’、‘位置’、‘位置’)值中”;
//添加1000个价值列表
$sql.=str_repeat(“(?,?,?,?),”,$batch_size-1);
$sql.=“(?,?,?,?),”;
$stmt=$pdo->prepare($sql);
对于($i=0;$i<(1000000/$batch_size);$i++){
$vals=array();
对于($j=0;$j<$batch_size;$j++){
数组_push(“5”、“5”、“5”、“5”);//执行($VAL);
}
我得到一个错误:只有变量可以通过行中的引用传递:(array_push…)
您能提出解决方案吗?谢谢

您错过了要插入的阵列

这本书告诉你:

参数 排列

  • 输入数组

  • 要推送到数组末尾的值
在此部分中插入4个参数:
array_push(“5”、“5”、“5”、“5”);

您需要添加要阵列\u push的阵列。如下所示:

array_push($vals, "5", "5","5","5");

你错过了你要插入的阵列

这本书告诉你:

参数 排列

  • 输入数组

  • 要推送到数组末尾的值
在此部分中插入4个参数:
array_push(“5”、“5”、“5”、“5”);

您需要添加要阵列\u push的阵列。如下所示:

array_push($vals, "5", "5","5","5");

尝试使用PDO Prepared语句插入多个值您忘了告诉
array\u push
要将这些值推送到哪个数组!我的行应该是:array\u push($vals,“5”、“5”、“5”)尝试使用PDO准备语句插入多个值您忘了告诉
array\u push
要将这些值推送到哪个数组!我的行应该是:array\u push($vals,“5”、“5”、“5”);