Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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 从数据库运行脚本_Php - Fatal编程技术网

Php 从数据库运行脚本

Php 从数据库运行脚本,php,Php,PHP脚本是否可能在数据库中插入一段代码,然后某个守护进程看到它被放入数据库,然后运行代码?有点像cron作业或作业队列。从技术上讲,您可以这样做。代码应存储在文本列中,然后您可以使用eval对其进行评估: 这不是一个很好的主意,有几个原因:存储在数据库中的代码不受版本控制,而且安全隐患相当严重。大多数作业队列系统存储“作业类型”和“作业参数”,而不是可执行代码。作业类型可以是要包含的文件名,也可以是要在OOP设置中实例化的类的名称。然后调用在那里定义的特定函数,传入参数 如果首先使用seria

PHP脚本是否可能在数据库中插入一段代码,然后某个守护进程看到它被放入数据库,然后运行代码?有点像cron作业或作业队列。

从技术上讲,您可以这样做。代码应存储在文本列中,然后您可以使用
eval
对其进行评估:

这不是一个很好的主意,有几个原因:存储在数据库中的代码不受版本控制,而且安全隐患相当严重。大多数作业队列系统存储“作业类型”和“作业参数”,而不是可执行代码。作业类型可以是要包含的文件名,也可以是要在OOP设置中实例化的类的名称。然后调用在那里定义的特定函数,传入参数


如果首先使用
serialize
函数将作业参数转换为字符串,则作业参数可以是任何PHP数据结构

将代码放入数据库通常是个坏主意。最好让代码位于守护进程端,只需传递您希望代码操作的参数。请这样想:如果有人侵入您的数据库并运行任意代码,该怎么办?好的,但如果我需要它在队列中呢?