gpt4 book ai didi

php - 无法连接到 Kohana 中的远程 MySql 服务器

转载 作者:行者123 更新时间:2023-11-29 06:14:35 24 4
gpt4 key购买 nike

我正在尝试使用 Kohana 作为 php 应用程序,并且在连接到我的本地主机安装的 MySql 时,我进行了一个简单的数据库测试。但是,当我尝试更改与 Web 主机 (Surftown) 上的远程 MySql 数据库的连接时,它不起作用。

以下是来自database.php的连接数据(“默认”连接):

        'hostname'   => 'mydb23.surftown.se',
'database' => 'andclic_app',
'username' => 'myusername',
'password' => 'mypassword',
'persistent' => FALSE,

然后我在我的 Controller 中尝试这个:

$default = Database::instance('default');
$result = $default->query(Database::SELECT, 'SELECT * FROM products', TRUE);

但我收到一条错误消息,指出不存在连接:

62      catch (Exception $e)
63 {
64 // No connection exists
65 $this->_connection = NULL;
66
67 throw new Database_Exception(':error',
68 array(':error' => $e->getMessage()),
69 $e->getCode());
70 }
71
72 // \xFF is a better delimiter, but the PHP driver uses underscore

那我做错了什么?我还尝试使用 ip 号而不是主机名,并尝试附加端口 (:3306),但都没有帮助。

最佳答案

当您激活 php 以显示已弃用的错误时,就会出现此问题。 mysql 驱动程序基于已弃用的 mysql_connect 库。当您的 php 在此库上抛出已弃用的错误时,Kohana 类无法处理该错误。为了避免此错误,您需要在中添加以下代码行:模块->数据库->类->kohana->数据库->mysql.php

查找以下代码行:

    // Prevent this information from showing up in traces
unset($this->_config['connection']['username'], $this->_config['connection']['password']);

将以下行添加到文件中紧接着上一行的位置:

    //Added to suppress deprecated error due to deprecated driver
error_reporting(E_ALL ^ E_DEPRECATED);

添加此行后,已弃用的错误代码将被抑制,您将能够使用 mysql_connect 扩展。

这是一个临时解决方法,因为最终您需要将代码迁移到新支持的扩展 mysqlite

此问题主要发生在最新版本的 php 中。在旧版本的 php 中您不会遇到此行为。

希望这对我有帮助,我花了一段时间才弄清楚这个问题。

关于php - 无法连接到 Kohana 中的远程 MySql 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7318072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com