为什么生成使用未定义的常量尽管使用数组引用?

时间:2015-12-01 04:17:59

标签: php mysql arrays

我试图通过mysql程序访问数据库。它会产生以下错误。我知道数组键必须定义。我已经做到了,但为什么它会产生..............

Use of undefined constant BLOG - assumed 'BLOG'

这是我的代码:

$config['db_host'] = 'localhost';
$config['db_user'] = 'root';
$config['db_pass'] = 'root';
$config['db_name'] = 'blog';

foreach ($config as $k => $v) {
    define(strtoupper($k), $v); 
}

mysql_select_db(BLOG);

我不知道这里有什么问题。感谢任何帮助。谢谢

2 个答案:

答案 0 :(得分:5)

您将key定义为constant名称,并且您正在使用value来使用它。

应该是 -

mysql_select_db(DB_NAME);

constant是 -

DB_HOST
DB_USER
DB_PASS
DB_NAME

答案 1 :(得分:1)

首先,您必须连接到数据库才能选择数据库。不推荐使用MYSQL扩展,请尝试使用mysqli扩展。

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}