Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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中将mysqli连接保存为会话有多安全_Php_Mysql_Session - Fatal编程技术网

在php中将mysqli连接保存为会话有多安全

在php中将mysqli连接保存为会话有多安全,php,mysql,session,Php,Mysql,Session,我想知道它的利弊,或者它是否真的是一种不好的做法。这是不可能的 首先阅读突出显示的警告中提到的内容: 因为会话数据是序列化的,所以资源变量不能存储在会话中 序列化处理程序(php和php_二进制)继承寄存器_全局限制。因此,不能使用包含特殊字符(|和!)的数字索引或字符串索引。使用这些将在脚本关闭时导致错误。php_serialize没有这样的限制。php_serialize可从PHP5.5.4获得 您还可以从中了解优点和缺点。您可以创建一个存储连接详细信息和链接对象的类。然后创建类函数,在返回

我想知道它的利弊,或者它是否真的是一种不好的做法。

这是不可能的

首先阅读突出显示的警告中提到的内容:

因为会话数据是序列化的,所以资源变量不能存储在会话中

序列化处理程序(php和php_二进制)继承寄存器_全局限制。因此,不能使用包含特殊字符(|和!)的数字索引或字符串索引。使用这些将在脚本关闭时导致错误。php_serialize没有这样的限制。php_serialize可从PHP5.5.4获得


您还可以从

中了解优点和缺点。您可以创建一个存储连接详细信息和链接对象的类。然后创建类函数,在返回链接之前验证连接是否处于活动状态或对其进行初始化。这将允许您定义一次管理对象,将其存储在会话中,并能够在会话生命周期内随时调用链接对象,而无需手动重新初始化或依赖includes。无法100%确定其负面影响,可能会招致批评


您也可以使用一个现有的php mysql包装类来实现这一点:

为什么要这样做?当然,您可以保存链接连接,但首先,它有一个资源类型。第二,你的MySQL没有永久连接-这个链接将完全无用。实际上我没有,我只是在读一段代码,我有同样的反应,所以我选择了询问,也许我可以学到一些东西。我建议你创建一个连接文件,只要在需要的地方包含它就行了(注意:)php_serialize没有这样的限制。php_serialize可从PHP5.5.4获得,所以您必须更新第一句话。因为这是可能的;)无用的possible@AlexSlipknot阅读文档。但这仍然是不可能的。首先,我建议您尝试编写一些示例代码。PHP是一个发展非常迅速的领域。因此,它确实适用于PHP7.1