【问题标题】:Why does Codeigniters msqli driver return null as a query result while the mysql driver executes the query just fine?为什么 Codeigniters msqli 驱动程序在 mysql 驱动程序执行查询时返回 null 作为查询结果?
【发布时间】:2010-12-28 21:44:36
【问题描述】:

我在 1and1 的托管服务器上,并且在我当前的项目中使用存储过程。为此,我必须使用 mysqli 作为数据库驱动程序。

1and1 想要为数据库连接设置一个套接字,这取决于我使用 mysql(即 /tmp/mysql5.sock)还是 mysqli(/tmp/mysqld.sock)。

当我设置我的 database.php 以使用 mysqli 驱动程序和主机名与相应的套接字时,我的查询将失败,我得到以下响应作为结果对象。

object(CI_DB_mysqli_result)#17 (7) {

["conn_id"]=> bool(false)

["result_id"]=> 空

["result_array"]=> 数组(0) {}

["result_object"]=> 数组(0) { }

["current_row"]=> int(0)

["num_rows"]=>NULL

["row_data"]=>NULL

}

我检查了我的 phpinfo,它告诉我,mysqli 已加载,其参数“default_socket”为“/tmp/mysqld.sock”。

我错过了什么?

["conn_id"]=> bool(false) 似乎根本没有数据库连接,对吗?如何在 Codeigniter 中获得 mysqli 连接以使用 1and1?

@edit:这是我尝试执行的查询之一:

function getStreetByReference ( $plz)
{

    $query = $this->db->query("SELECT strasse from dwh_strassen WHERE dwh_strassen.PLZ =  '$plz' GROUP BY dwh_strassen.strasse");
    $temp_result = array();
    foreach ( $query->result_array() as $row )
    {
         $temp_result [] = $row;
    }
    return $temp_result;
}

【问题讨论】:

  • 您如何以代码形式发送查询?如果你在写 SQL 语句,你的 SQL 语句是什么?

标签: php codeigniter mysqli


【解决方案1】:

好吧,长话短说,codeigniter 的 mysqli 驱动程序不支持使用套接字。或者至少我找不到这样做的正确设置。

我已经在驱动类中添加了参数,现在它可以工作了。

在/System/database/drivers/mysqli_driver.php

if ($this->port != '')
        {
            return @mysqli_connect($this->hostname, $this->username, $this->password, $this->database, $this->port, $this->socket); // $this->socket is new, i've added the same variable in my database.php
        }
        else
        {
            return @mysqli_connect($this->hostname, $this->username, $this->password, $this->database);
        }

并在 /application/config/database.php 中

$db['live']['socket'] = "/tmp/mysql5.sock";

这可能就是它的全部内容。我做了一些测试,即使 phpinfo 告诉我,mysqli 的 default_socket 不是 mysql5.sock,它工作得很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多