Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不推荐使用:mysql\u pconnect():_Php_Mysql - Fatal编程技术网

Php 不推荐使用:mysql\u pconnect():

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

我在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, $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);
    }
}