【问题标题】:Issue with MySQL connection inside class课堂内的MySQL连接问题
【发布时间】:2016-09-08 22:08:49
【问题描述】:

我有一个用于连接 MySQL 的 MySQL 类。但是做了PHP升级到5.4.16之后就不行了。任何人都可以帮忙吗?
以下是我使用的代码。每当我尝试连接时,它都会进入错误部分。

final class MySQL {
    private $connection;

    public function __construct($hostname, $username, $password, $database) {
            if (!$this->connection = mysql_connect($hostname, $username, $password)) {
            exit('Error: Could not make a database connection using ' . $username . '@' . $hostname);
    }
}

【问题讨论】:

  • 如果您查看mysql_error,您将获得更多有用的信息。但是你真的应该考虑升级到mysqli_PDO,因为mysql_ 库已被弃用,实际上已从 PHP 7 中删除
  • 请不要使用mysql_*函数。它们在最新版本的 PHP 中已被弃用和删除。阅读stackoverflow.com/a/12860046/934739
  • 看起来您正在编写自己的 ORM。在走这条路之前,您是否评估过DoctrinePropelEloquent
  • 我不认为它基于 mysql_ 已弃用。当我在课堂外使用 mysql_connect 时,它可以工作。但是在上面的类中使用它时,它会显示错误。我收到的错误是“无法连接到 '[mysql server]' (13) 上的 MySQL 服务器”
  • 好的。我把它缩小了一点。当我在 linux shell 上运行脚本时,例如“php script.php”,它能够连接。但是在浏览器上执行相同的操作时会抛出上述无法连接的错误。

标签: php mysql mysql-connect


【解决方案1】:

已解决:在命令提示符下执行以下操作并
setsebool -P httpd_can_network_connect=1

更多细节在这里: https://maanasroyy.wordpress.com/2015/06/04/php-cant-connect-to-mysql-with-error-13-but-command-line-can/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2016-11-20
    • 1970-01-01
    相关资源
    最近更新 更多