使用预准备语句

时间:2018-01-06 17:40:26

标签: php csv

我正在尝试将CS​​V数据插入数据库,我在下面尝试了这个

<?php 
    $stmt = $con->prepare('INSERT INTO test (field1, field2, load_time) VALUES (:val1, :val2, sysdate)');
    $i=0;
    while (($data = fgetcsv($source)) !== FALSE) {  
        if($i!=0) {
            $field1=$data[0];
            $field2=$data[1];
            $stmt->bindParam(':val1', $field1);
            $stmt->bindParam(':val2', $field2);
            $stmt->execute();
        }
        $i++;
    }
?>

此代码无效,请帮助修复此代码中的任何问题,因为我是新编写的语句和PDO。

1 个答案:

答案 0 :(得分:1)

我尝试了类似的东西,只是一条记录,在时间戳列中插入sysdate,但它运行没有问题。

<?php
  $con = oci_connect(
     "admdba","admdba",
     "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ghp-amdphIIX4B.ghp.be)"
     . "(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=GHPORA)(SID=GHPORA)))");
  if ($con) {
    $stmt = oci_parse(
       $con,
       'INSERT INTO test (field1, field2, load_time)'
       . ' VALUES (:val1, :val2, sysdate)');
    $field1='amehoela';
    $field2='broodkorst';
    oci_bind_by_name($stmt, ':val1', $field1);
    oci_bind_by_name($stmt, ':val2', $field2);
    oci_execute($stmt);
    print "Access registered<BR/>";
  } else {
    print "Failed to connect <BR/>";
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
  }
?>

还有一件事:你的桌子上没有触发器吗?

相关问题