【问题标题】:PDO : insert 3 rows instead in mysql when i insert just 1 rowPDO:当我只插入 1 行时,在 mysql 中插入 3 行
【发布时间】:2014-10-25 08:55:35
【问题描述】:

我在我的 php 框架(飞行)中使用 PDO,但我遇到了一个荒谬的问题。 当我在 mysql 中插入 1 行时,我看到插入了 3 行。

Flight::db()->query("INSERT INTO `menu_item`(`order`, `menu_cat_id`) VALUES (22,1)");

这是我的全部代码:

<?php
require 'flight/Flight.php';

Flight::register('db', 'PDO', array('mysql:host=localhost;port=3306;dbname=deliman', 'root', ''), function($db) {
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
        $db->exec("SET NAMES 'utf8';");
        $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
});

Flight::route('/menu/item/new', function(){
        //$conn = Flight::db();
        $data = Flight::db()->query("INSERT INTO `menu_item`(`order`, `menu_cat_id`) VALUES (22,1)");

        //SET @maxOrder := (SELECT `order` FROM `menu_item` WHERE `menu_cat_id` = 1 ORDER BY `order` DESC LIMIT 1) +1 ;
        //SELECT LAST_INSERT_ID() AS id;
        echo 'a';
    });


Flight::start();
?>

【问题讨论】:

  • 我们需要查看query 方法。
  • 你是使用循环还是调用相同的方法3次?
  • 它是 php 中的常规 PDO 查询方法,框架使用它。
  • 不,我的代码中没有任何循环。

标签: php pdo flightphp


【解决方案1】:

我在这篇文章中找到了答案。 pdo insert two rows when I wanna insert only one

所以当我在浏览器中进行测试时,它会发送多个请求并且每次我的代码运行时。就是这样。

【讨论】:

    猜你喜欢
    • 2014-07-16
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 2013-12-12
    相关资源
    最近更新 更多