【问题标题】:php/pdo insert into database mssql with arraysphp/pdo 使用数组插入数据库 mssql
【发布时间】:2018-08-01 03:18:14
【问题描述】:

我需要帮助

有没有办法在 PDO 中做到这一点? https://stackoverflow.com/a/1899508/6208408 是的,我知道我可以更改为 mysql,但我使用的是 mssql 服务器并且不能使用 mysql。我尝试了一些东西,但我对 PDO 的使用不如 mysql……很难找到一些使用 PDO 将数组插入数据库的好例子。这么快就说我有一个基于 PDO 的代码连接到 mssql 网络服务器。

最好的问候乔普

我以前试过这个:

//id
$com_id = $_POST['com_id'];
//array

$mon_barcode = $_POST['mon_barcode'];                   
$mon_merk = $_POST['mon_merk'];
$mon_type = $_POST['mon_type'];
$mon_inch = $_POST['mon_inch'];
$mon_a_date = $_POST['mon_a_date'];
$mon_a_prijs = $_POST['mon_a_prijs'];

$data = array_merge($mon_barcode, $mon_merk, $mon_type, $mon_inch, $mon_a_date, $mon_a_prijs);
try{
    $sql = "INSERT INTO IA_Monitor (Com_ID, Barcode, Merk, Type, Inch, Aanschaf_dat, Aanschaf_waarde) VALUES (?,?,?,?,?,?,?)";
    $insertData = array();


    foreach($_POST['mon_barcode'] as $i => $barcode)                        
    {
        $insertData[] = $barcode;
    }

    if (!empty($insertData))
    {
        implode(', ', $insertData);
        $stmt = $conn->prepare($sql);
        $stmt->execute($insertData);

    }
}catch(PDOException $e){
    echo $sql . "<br>" . $e->getMessage();
}
$conn = null;

【问题讨论】:

  • @Cemal 正确,我编辑了它

标签: php arrays sql-server database pdo


【解决方案1】:

下面的代码应该可以解决您的问题。

$db_username='';
$db_password='';

$conn = new \PDO("sqlsrv:Server=localhost,1521;Database=testdb", $db_username, $db_password,[]);
//above added per @YourCommonSense's request to provide a complete example to a code fragment

if (isset($_POST['com_id'])) { //was com_id posted?
    //id
    $com_id = $_POST['com_id'];
    //array
    $mon_barcode = $_POST['mon_barcode'];
    $mon_merk = $_POST['mon_merk'];
    $mon_type = $_POST['mon_type'];
    $mon_inch = $_POST['mon_inch'];
    $mon_a_date = $_POST['mon_a_date'];
    $mon_a_prijs = $_POST['mon_a_prijs'];

    $sql = "INSERT INTO IA_Monitor (Com_ID, Barcode, Merk, Type, Inch, Aanschaf_dat, Aanschaf_waarde) VALUES (?,?,?,?,?,?,?)";
    try {
        $stmt = $conn->prepare($sql);
        foreach ($mon_barcode as $i => $barcode) {
            $stmt->execute([$com_id, $barcode, $mon_merk[$i], $mon_type[$i], $mon_inch[$i], $mon_a_date[$i], $mon_a_prijs[$i]]);
        }
    } catch (\PDOException $e) {
        echo $sql . "<br>" . $e->getMessage();
    }
}
$conn = null;

【讨论】:

  • 它在我的屏幕上打印出来 prepare($sql); foreach ($mon_barcode as $i => $barcode) { $insertData = array_merge([$com_id,$barcode],$data); $stmt->执行($insertData); } } 捕捉(PDOException $e){ 回声 $sql 。 “”。 $e->getMessage(); } $conn = 空; } ?>
  • 这就像代码的一半,所以在 $conn 之后它开始准备,可能在我建立连接时出了点问题
  • 这段代码可以满足你的要求,can this be done in PDOhttps://stackoverflow.com/a/1899508/6208408
  • 你能上传你的输出截图吗?
  • @YourCommonSense 请问我错过了什么?
猜你喜欢
  • 2012-11-10
  • 2012-03-28
  • 2015-10-24
  • 1970-01-01
  • 2015-08-16
  • 2016-09-11
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
相关资源
最近更新 更多