Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

CodeIgniter đang chèn hai lần cùng một mục nhập. Trong vài trường hợp

Tôi phát hiện ra rằng hàm _execute () trong CI_DB_pdo_driver bên trong hệ thống codeigniter không hoạt động bình thường, có thể là do phiên bản php. Dù sao, tôi đã thay đổi mã của CodeIgniter từ:

    function _execute($sql)
{
    $sql = $this->_prep_query($sql);
    $result_id = $this->conn_id->prepare($sql);
    $result_id->execute();

    if (is_object($result_id))
    {
        if (is_numeric(stripos($sql, 'SELECT')))
        {
            $this->affect_rows = count($result_id->fetchAll());
            $result_id->execute();
        }
        else
        {
            $this->affect_rows = $result_id->rowCount();
        }
    }
    else
    {
        $this->affect_rows = 0;
    }

    return $result_id;
}

ĐẾN:

    function _execute($sql)
{
    $sql = $this->_prep_query($sql);
    $result_id = $this->conn_id->prepare($sql);
    $result_id->execute();

    if (is_object($result_id))
    {
        if (preg_match('/^\s*"?(SELECT)\s+/i', $sql))
        {
            $this->affect_rows = count($result_id->fetchAll());
            $result_id->execute();
        }
        else
        {
            $this->affect_rows = $result_id->rowCount();
        }
    }
    else
    {
        $this->affect_rows = 0;
    }

    return $result_id;
}

Phần kiểm tra xem $ sql có chứa "SELECT" bên trong nó không hoạt động, vì vậy khi tôi cố gắng CHÈN "$ result_id-> execute ()" đã được gọi hai lần.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thư viện tổng hợp kết nối mysql tiêu chuẩn cho C không?

  2. MySQL:DUY NHẤT, nhưng KHÔNG ĐỦ - được phép bằng cách tạo bảng. Nhiều hơn 1 NULL được phép chèn. Tại sao?

  3. Dự phòng &Dự phòng trên Amazon RDS

  4. Tạo GUID trong MySQL cho Dữ liệu hiện có?

  5. php mysql tính toán các hàng liên tiếp