Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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会话_id()作为每个活动会话的映像的唯一名称?_Php_Mysql - Fatal编程技术网

使用PHP会话_id()作为每个活动会话的映像的唯一名称?

使用PHP会话_id()作为每个活动会话的映像的唯一名称?,php,mysql,Php,Mysql,我有一个在MySql中存储userdata的表,除了其他信息外,它还将图片(LOAD_FILE())存储为BLOB。我从用户处获取图像,检查其格式,然后使用move_uploaded_file()将其重命名为session_id(),并在表中插入信息 我的问题: 会话_id()对于在移动时处于活动状态的所有会话是唯一的跨访问此站点的不同设备,这样我的图像就不会被覆盖 如果没有,有没有更好的方法来实现这一点 我问这个问题是因为这个网站将来可能会被很多客户同时使用,最好是防止bug发生 Php版本:

我有一个在MySql中存储userdata的表,除了其他信息外,它还将图片(LOAD_FILE())存储为BLOB。我从用户处获取图像,检查其格式,然后使用move_uploaded_file()将其重命名为session_id(),并在表中插入信息

我的问题: 会话_id()对于在移动时处于活动状态的所有会话是唯一的跨访问此站点的不同设备,这样我的图像就不会被覆盖

如果没有,有没有更好的方法来实现这一点

我问这个问题是因为这个网站将来可能会被很多客户同时使用,最好是防止bug发生

Php版本:5.5.14


在数据库中存储图像效率低下。将它们存储在文件系统中,并将路径写入数据库

对于您的问题:会话id在服务器上的任何时刻都不能保证是唯一的,即使发生冲突的概率非常低


当然,可以使用以前存在的id进行会话。因此,由会话id命名的映像的寿命不应超过会话本身

您可以使用
uniqid()
甚至
time()
。可能重复的会话id的可能重复项必须是唯一的,从技术上讲可以获得重复的SID,但可能性很小。如果你想绝对确保你没有交叉,考虑使用电子邮件地址或自动增量ID的用户细节。即使当我们假设活动会话的ID是不同的-当你长期存储数据时,这会对你有什么帮助?不,会话id对此没有好处;事实上,你永远不应该“滥用”它来做任何事情,哪怕是很遥远的事情。使用它来识别会话,而不是其他。