如何使这个函数与php7.2一起工作?

mxg2im7a  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(306)

这个问题在这里已经有答案了

为什么我不应该在php中使用mysql函数(12个答案)
两年前关门了。
我有一段代码,可以在php5.6中正常工作,但在php7.2中会中断。我犯了三个错误,我能改正两个,我相信:)

$link = mysql_connect($hostname, $username, $password);
if (!$link) {
    die('Could not connect !');
    exit();
}
else{
    mysql_set_charset('utf8',$link);
    mysql_select_db($database, $link) or die('Could not select database.');
    }

这就是我目前所拥有的

$link = mysqli_connect($hostname, $username, $password);
if (!$link) {
    die('Could not connect !');
    exit();
}
else{
    mysqli_set_charset('utf8',$link);
    mysqli_select_db($database, $link) or die('Could not select database.');
    }

mysql\u select\u db()出现致命错误
如何使该函数与PHP7.2一起工作?任何帮助都将不胜感激,提前谢谢!!

k5ifujac

k5ifujac1#

mysqli*api要求首先建立数据库连接(与旧的和不推荐使用的mysql*api不同,后者在php7.2中不再受支持):

$link = mysqli_connect($hostname, $username, $password);
if (!$link) {
    die('Could not connect !');
    exit();
}
else{
    mysqli_set_charset($link, 'utf8');
    mysqli_select_db($link, $database) or die('Could not select database.');
    }

参考文献:
http://php.net/manual/en/book.mysqli.php
http://php.net/manual/en/function.mysqli-connect.php
http://php.net/manual/en/mysqli.select-db.php
http://php.net/manual/en/mysqli.set-charset.php
确保您确实为 $database 变量;你的帖子里没有。
编辑:正如riggs在comments中所说的,您可以使用4个参数来代替连接。
即。:

$link = mysqli_connect($hostname, $username, $password, $database);

选择权在你。
评论:
最好将数据库作为connect的param4。mysqli\u select\u db()实际上只适用于使用相同连接从一个db切换到另一个db的情况–riggsfully
……确实如此。
关于错误:
mysql\u select\u db()出现致命错误
我希望你不要把这个和别的东西混在一起。这些不同的mysql api不会相互混合。
仅此错误就意味着它是如图所示的“致命”错误,是服务器不支持该api的结果。
如果使用php的错误报告并将其设置为catch和display,那么(很可能)会抛出一个弃用错误和/或可能不受支持的错误。
参考文献:
http://php.net/manual/en/function.error-reporting.php

相关问题