PHP数组变成mysqltable

PHP array into a mysql table

我有一个 php 数组。我想使用 PDO 将它们全部插入到 mysql table 的列中。

$myArray = array("12397", "45263426", "253725372","2735724372");
$sql = "DROP TEMPORARY TABLE IF EXISTS T_Temp;
        CREATE TEMPORARY TABLE T_Temp (
        AccountID varchar(120)
      );";

现在我想一次性将所有数组值插入到 T_Temp table 中。我不想使用 foreach。

要一次插入多个值,您可以编写这种查询

INSERT INTO table_name (column_list)
VALUES
    (value_list_1),
    (value_list_2),
    ...
    (value_list_n);

这里有一个不使用foreach的解决方案:

<?php

$myArray = array("12397", "45263426", "253725372","2735724372");
$sql = "DROP TEMPORARY TABLE IF EXISTS T_Temp;
        CREATE TEMPORARY TABLE T_Temp (
        AccountID varchar(120)
      );";

$pdo = new PDO('mysql:dbname=test;host=127.0.0.1', 'root');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$pdo->exec($sql);

$placeholders = implode(",", array_fill(1, count($myArray), "(?)"));
$insertSql = "INSERT INTO T_Temp (AccountID) VALUES {$placeholders}";

$pdo->prepare($insertSql)->execute($myArray);