Php 为什么在使用数组引号的情况下使用未定义的常量?

Php 为什么在使用数组引号的情况下使用未定义的常量?,php,mysql,arrays,Php,Mysql,Arrays,我正在尝试通过mysql程序访问数据库。它会产生以下错误。我知道数组键必须定义。我已经做了,但为什么它会产生 使用未定义的常量BLOG-假定为“BLOG” 这是我的密码: $config['db_host'] = 'localhost'; $config['db_user'] = 'root'; $config['db_pass'] = 'root'; $config['db_name'] = 'blog'; foreach ($config as $k => $v) { def

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

使用未定义的常量BLOG-假定为“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);

我不知道这里有什么问题。如果您有任何帮助,我们将不胜感激。谢谢您首先必须连接到数据库才能选择数据库。不推荐使用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());
}

您将
s定义为
常量
名称,并使用
来使用它

应该是——

mysql_select_db(DB_NAME);
常数
s为-

DB_HOST
DB_USER
DB_PASS
DB_NAME

Codeigniter框架???
mysql\u选择\u db(db\u名称)
mysql\u选择\u数据库(博客)
as
blog
是值,而不是键
db\u name
,即
$k=>v
=>
db\u name=>blog
否。我没有使用任何framworkYes。你说得对,肖恩。这才是真正的问题罗汉先生,这并不能回答问题:)@是的,这将不会,但它将帮助他了解如何“逐步”连接到数据库。很高兴知道你还在贡献:)mysql\u选择\u db(db\u名称);如果他已经在某个地方定义了连接,那么他会成功的