php / pdo使用数组插入数据库mssql

时间:2018-02-21 13:52:33

标签: php arrays sql-server database pdo

我需要一些帮助

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

最好的问候joep

我之前尝试过这个:

//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;

1 个答案:

答案 0 :(得分:0)

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

$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;