当我尝试打开与我的MACBOOK上运行的MySQL的连接时,我收到以下错误:
警告:mysql_connect():[2002]在/Users/Eugene/Sites/website/includes/database.php中没有这样的文件或目录(尝试通过unix:///var/mysql/mysql.sock连接)第15行警告:mysql_connect():第15行/Users/Eugene/Sites/website/includes/database.php中没有此类文件或目录注意:未定义变量:/ Users / Evgeny / Sites / website / includes中的连接/第16行的database.php数据库连接失败:没有这样的文件或目录
我的常数是:
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());
}
}
请帮忙,
提前致谢。
答案 0 :(得分:2)
$ this-> connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
第一个问题是mysqld没有使用与客户端相同的套接字路径。尝试通过127.0.0.1访问,然后运行'show variables'找到它放置套接字的地方 - 适当更新你的PHP配置。
如果(!$连接)
但你把连接放在'$ this->连接'而不是'$ connection'
答案 1 :(得分:0)
您正在通过$this
设置实例变量,但测试局部变量。假设没有其他更改,您的代码应如下所示:
$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$connection) // if no connection - die
{
die("Database connection failed: " . mysql_error());
}
试一试!
答案 2 :(得分:0)
您正在混合类变量和局部变量。 $this->connection
与$connection
不同。
答案 3 :(得分:0)
如果你要从一个班级调用$连接,只需输入if(!$ this-> connection){.....} 或者,如果不是只是把这一行if(!$ connection){.....}