Php 不推荐使用:mysql\u pconnect():
我在php执行过程中遇到了一个错误,我认为这是由于一个更新的PHP5.5 已弃用:Php 不推荐使用:mysql\u pconnect():,php,mysql,Php,Mysql,我在php执行过程中遇到了一个错误,我认为这是由于一个更新的PHP5.5 已弃用:mysql\u pconnect():mysql扩展已弃用,将来将被删除:在第7行的/public\u html/mydomain.com/connx.php中改用mysqli或PDO 2014年4月3日 检查 内部代码看起来是这样的 因此,我认为将mysql更改为mysqli可以解决这个问题: $conn = mysqli_pconnect($hostname_conn, $username_conn, $pa
mysql\u pconnect()
:mysql扩展已弃用,将来将被删除:在第7行的/public\u html/mydomain.com/connx.php中改用mysqli或PDO2014年4月3日
检查 内部代码看起来是这样的 因此,我认为将
mysql
更改为mysqli
可以解决这个问题:
$conn = mysqli_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error("Server Down");
相反,我得到了这个错误。。。所以我想这不是正确的做法:)
致命错误:调用未定义的函数mysqli\u pconnect()
无论如何我可以解决这个问题?代码是很久以前建立的,现在我真的无法与他联系:x
谢谢
**更新**
我更改了mysqli_connect,当我加载php脚本时。。。现在它显示了一些错误。。。只是想知道我是否也必须更改这些语法
mysql_select_db($database_conn);
mysql_query("SET NAMES UTF8");
见:
此功能的替代方案包括:
带有p:主机前缀的mysqli\u connect()
因此,请使用
mysqli\u connect
,而不是mysqli\u pconnect
,并按所述修改主机参数没有mysqli\u pconnect()
,但您可以使用mysqli\u connect()
作为持久连接,只需将p:
添加到主机名的开头即可
引自手册:
没有“mysqli\u pconnect”,但是您可以使用mysqli\u connect()
在主机名的开头添加p:
来建立持久连接
因此,您可以通过将以下内容添加到php文件的头部来恢复旧样式:
if (!function_exists("mysql_pconnect")){
function mysql_pconnect($host, $username, $password){
return mysqli_connect("p:".$host, $username, $password);
}
}
更新:由于pconnects几乎没有任何好处,您应该在脚本中用
mysql\u pconnect
替换mysql\u pconnect
。我遇到了一个问题,必须在旧脚本中更新mysql\u pconnect才能在PHP7.0下运行。我不是php专家,所以如果你不是,这可能会帮助你
通常,脚本会在mysql_pconnect上抛出错误,因为这是它找到的第一个过时函数,然后它会停止。可能还有更多的mysql_xxx函数需要查找和修复。幸运的是,大多数问题都可以通过查找和替换来解决,用mysqli替换mysql
例外情况是:
mysql_pconnect:我将其替换为mysqli_connect,并添加了第四个参数,即数据库名称。(通常不需要持久性)
mysqli_select_db:swap over link和databasename参数
mysqli_查询:交换link和databasename参数
在所有情况下,您都应该在php手册中查找旧函数和新函数,看看需要做什么。新函数可以使用面向对象的方法,但我忽略了这一点,并查看了过程示例。
我的脚本现在似乎工作正常,所以祝你好运 您应该阅读更多关于如何在php.netBesides上使用PDO的文档@Quentin说,使用变量绑定技术(
WHERE name=?
->mysqli\u stmt\u bind\u param
)而不是旧式的将所有内容都塞进我的sql语句WHERE name='$name'
。谢谢大家,问题实际上是脚本正在获取一些数据,不确定是否隐藏了此报告,获取可能会失败。(将不会使用此隐藏选项)同时,我尝试将其编辑为mysqli_connect,并且在运行脚本时出现更多错误。。我想这也会改变吗?mysql\u select\u db($database\u conn);mysql_查询(“设置名称UTF8”);是的,如果您将一个mysql\uu
函数调用更改为mysqli
,那么您必须将它们全部更改——它们是完全独立的数据库驱动程序(即使它们最终与同一个数据库通信);他们之间不能混搭。通过mysqli打开的连接不能被mysql函数使用,反之亦然。将mysql_select_db($database_conn)更改为mysqli_select_db($database_conn),将mysql_query(“SET NAMES UTF8”)更改为mysqli_query(“SET NAMES UTF8”)@user3493204:mysql和MySQLIAPI之间存在细微的差异。例如,您需要提供$database\u conn
作为mysqli\u query()
的第一个参数。还要注意的是,mysqli提供了,它取代了进行集合名称
查询的需要。请参阅手册页:quote:这是更改字符集的首选方法。不建议使用mysqli_query()来设置它(如set NAMES utf8)。
if (!function_exists("mysql_pconnect")){
function mysql_pconnect($host, $username, $password){
return mysqli_connect("p:".$host, $username, $password);
}
}