我需要将php 5代码转换为php7。 使用定义此类函数的脚本转换所有mysql语句:
function mysql_connect($host, $username, $password){
global $dbconnect;
$dbconnect = mysqli_connect($host, $username, $password);
return $dbconnect;
}
好消息是 - 它适用于php7。
现在我用mysqli_connect重写了所有脚本。 然而,使用mysqli的第一个函数失败了。
mysqli_connect(): (HY000/1044): Access denied for user
如果我切换回mysql_connect
它会工作,并在下一个mysqli命令时再次失败。
为什么?
编辑: 连接的完整代码:
function db_connect()
{
global $db_sql_hostname,$db_sql_database,$db_sql_user,$db_sql_password;
require_once 'db-config.php';
global $db_handle;
$db_handle = mysqli_connect($db_sql_hostname, $db_sql_user, $db_sql_password, $db_sql_database) or die("Konnte nicht zum mySQL-Server verbinden: ".mysqli_error());
mysqli_select_($db_sql_database, $db_handle) or die("Konnte die Datenbank ".$db_sql_database." nicht oeffnen: ".mysqli_error());
return $db_handle;
}
请注意,一切都适用于mysql_命令。变量是正确的!
EDIT2:这是db-config.php
<?php
$db_sql_hostname = "hostIP";
$db_sql_database = "dbname";
$db_sql_dbuser = "dbuser";
$db_sql_dbpassword = "dbpassowrd";
?>
答案 0 :(得分:1)
您正在传递TRUE
作为数据库名称(mysqli_connect
的第四个参数),这会导致错误:
_警告:mysqli_connect():( HY000 / 1044):拒绝用户'...'@'...'拒绝数据库'1'...
将行更改为:
$db_handle = mysqli_connect($db_sql_hostname, $db_sql_dbuser, $db_sql_dbpassword) or die("Konnte nicht zum mySQL-Server verbinden: ".mysqli_error());
答案 1 :(得分:0)
mysqli_connect需要参数
mysqli_connect(ip,user,password,database)
在哪里
mysql_connect需要
mysql_connect(ip,user,password)
因此,指定正确的数据库并删除true将解决您的问题
来源:PHP文档
答案 2 :(得分:0)
你的功能
function db_connect()
{
global $db_sql_hostname,$db_sql_database,$db_sql_user,$db_sql_password;
require_once 'db-config.php';
global $db_handle;
$db_handle = mysqli_connect($db_sql_hostname, $db_sql_user, $db_sql_password, $db_sql_database) or die("Konnte nicht zum mySQL-Server verbinden: ".mysqli_error());
mysqli_select_($db_sql_database, $db_handle) or die("Konnte die Datenbank ".$db_sql_database." nicht oeffnen: ".mysqli_error());
return $db_handle;
}
mysqli_select_()
应为mysqli_select_db()
并指定$db_handle
作为第一个参数,然后指定数据库的名称即。
myslqi_select_db($db_handle,$db_sql_database)
请查看此文档以获得更清晰的信息。 http://php.net/manual/en/mysqli.select-db.php