【问题标题】:Correct way of using insert statement with PDO在 PDO 中使用插入语句的正确方法
【发布时间】:2014-03-18 08:46:18
【问题描述】:

我正在尝试使用以下代码将数据插入数据库。 这是正确的做法吗? 我无法在数据库中使用以下语句添加数据。

try {

 # MySQL with PDO_MYSQL
  $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

  /*** INSERT data ***/ 

    $task = $_POST['task'];
    $target_date = $_POST['target_date'];

    $sql = "INSERT INTO animals(task, target_date) VALUES (:task, :target_date)";
    $q=$DBH->prepare($sql);
    $q->execute(array(':task'=>$task,':target_date'=>$target_date));


    /*** close the database connection ***/
    $DBH = null;

 }
catch(PDOException $e) {
    echo $e->getMessage();
}

【问题讨论】:

  • 是的,没关系。请详细说明“我无法添加数据...”
  • 顺便说一句,可能是意见问题:没有(多余的)变量$task$target_date - $q->execute(array(':task'=>$_POST['task'],':target_date'=>$_POST['target_date']));
  • @VolkerK 。谢谢,我会用它。

标签: php mysql sql pdo


【解决方案1】:

由于您使用的是 catch/echo-message 块,您应该在您的 pdo 实例上打开 ERRMODE_EXCEPTION 以查看发生了什么问题。

try{
  $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
  $DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  ...


}
catch(...)

http://docs.php.net/pdo.error-handling

【讨论】:

    猜你喜欢
    • 2013-05-19
    • 2012-06-27
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 2019-10-20
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多