使用osCommerce连接MySQL遇mysqli_select_db参数错误求助
解决mysqli_select_db()参数不足的错误(osCommerce数据库连接问题)
Hey there! 刚看到你在搭建osCommerce时遇到的数据库连接错误,这个问题其实很容易搞定——错误提示已经说得很清楚:mysqli_select_db()需要恰好2个参数,但你第24行的代码只传了1个。
错误原因拆解
你现在的代码里写的是:
if ($$link) mysqli_select_db($database);
而mysqli_select_db()的正确调用格式是:mysqli_select_db(连接句柄, 数据库名),你漏掉了第一个必填的「数据库连接对象」参数,也就是你前面用mysqli_connect()或mysqli_pconnect()创建的$$link。
修复方案
把第24行的代码改成下面这样就可以了:
if ($$link) mysqli_select_db($$link, $database);
完整的修复后的函数片段参考:
function tep_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link') { global $$link; if (USE_PCONNECT == 'true') { $$link = mysqli_pconnect($server, $username, $password); } else { $$link = mysqli_connect($server, $username, $password); } // 修正后的数据库选择语句 if ($$link) mysqli_select_db($$link, $database); return $$link; }
额外排查建议
为了避免后续踩坑,还可以做这几个检查:
- 确认
includes/configure.php里的DB_DATABASE、DB_SERVER、DB_SERVER_USERNAME、DB_SERVER_PASSWORD这些常量已经正确配置,值要和你的MySQL数据库信息完全匹配 - 如果修复后还是有问题,可以加上错误捕获代码,方便定位具体问题:
if ($$link) { if (!mysqli_select_db($$link, $database)) { die('数据库选择失败: ' . mysqli_error($$link)); } } else { die('数据库连接失败: ' . mysqli_connect_error()); }
内容的提问来源于stack exchange,提问作者RA19
相关产品推荐
相关产品推荐

