0

当我尝试打开与我的 MACBOOK 上运行的 MySQL 的连接时,出现以下错误:

警告:mysql_connect(): [2002] 第 15 行 /Users/Eugene/Sites/website/includes/database.php 中没有这样的文件或目录(试图通过 unix:///var/mysql/mysql.sock 连接)警告:mysql_connect():第 15 行 /Users/Eugene/Sites/website/includes/database.php 中没有此类文件或目录 注意:未定义变量:/Users/Evgeny/Sites/website/includes/database.php 中的连接在第 16 行数据库连接失败:没有这样的文件或目录

我的常数是:

defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
defined('DB_USER') ? null : define("DB_USER", "eugene");
defined('DB_PASS') ? null : define("DB_PASS", "password"); // no comments please :)
defined('DB_NAME') ? null : define("DB_NAME", "maindb");

我尝试连接的方式是:

$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if(!$connection) // if no connection - die
{
    die("Database connection failed: " . mysql_error());
}
else // if there is a connection, then go and select a database
{
    $db_select = mysql_select_db(DB_NAME, $connection);
    if(!$db_select) // if no database selected - die
    {
        die("Database selection failed: " . mysql_error());
    }
}

请帮忙,

提前致谢。

4

4 回答 4

2

$this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);

第一个问题是 mysqld 没有使用与客户端相同的套接字路径。尝试通过 127.0.0.1 访问,然后运行“显示变量”以找到它放置套接字的位置 - 适当地更新您的 PHP 配置。

如果(!$连接)

但是你把连接放在 '$this->connection' 而不是 '$connection'

于 2012-06-19T22:01:54.277 回答
0

您正在通过$this但测试局部变量来设置实例变量。假设没有其他更改,您的代码应如下所示:

$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$connection) // if no connection - die
{
    die("Database connection failed: " . mysql_error());
}

试试看!

于 2012-06-19T22:00:11.117 回答
0

您正在混合类变量和局部变量。$this->connection不一样$connection

于 2012-06-19T22:00:20.627 回答
0

如果你从一个类中调用 $connection 只需输入 if(!$this->connection){.....} 或者如果不只输入这一行 if (!$connection){.....}

于 2012-06-19T22:04:15.847 回答