Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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
我的SQL使用带有PHP的临时表,而不使用mysql\u pconnect_Php_Mysql_Temp Tables - Fatal编程技术网

我的SQL使用带有PHP的临时表,而不使用mysql\u pconnect

我的SQL使用带有PHP的临时表,而不使用mysql\u pconnect,php,mysql,temp-tables,Php,Mysql,Temp Tables,我想在PHP代码中使用临时表。这是一份将要邮寄的表格。我确实使用了会话变量和数组,但一些填写的数据必须以表格格式存储,用户必须能够删除条目,以防输入错误等。使用数组可以做到这一点(不确定),但我对php有点陌生,使用表格似乎简单得多。我的问题是使用mysql_connect创建表并添加数据行,但当我添加第二行时,它会删除表并再次创建它。。。使用mysql_pconnect的工作原理是不删除表,但有时会在表的实例上创建多个表,并删除条目的?真是一团糟!我如何才能最好地使用临时表,而不让它们在页面刷

我想在PHP代码中使用临时表。这是一份将要邮寄的表格。我确实使用了会话变量和数组,但一些填写的数据必须以表格格式存储,用户必须能够删除条目,以防输入错误等。使用数组可以做到这一点(不确定),但我对php有点陌生,使用表格似乎简单得多。我的问题是使用mysql_connect创建表并添加数据行,但当我添加第二行时,它会删除表并再次创建它。。。使用mysql_pconnect的工作原理是不删除表,但有时会在表的实例上创建多个表,并删除条目的?真是一团糟!我如何才能最好地使用临时表,而不让它们在页面刷新时被删除?如果用户关闭页面并将表留在数据库中,不使用临时表可能会导致其他问题。

听起来像是一团糟!我不知道为什么要使用临时表,但可以创建一个随机表名并将其分配给会话变量。但这是大错特错的,因为每个用户都有一个表

如果必须使用数据库,请向名为sessionID的表中添加字段。当您插入/删除引用php会话ID时


只在会话中存储数据可能会容易得多,不过创建一个永久表和临时行要好得多。因此,假设您已将包含所有半完整表单数据的对象序列化为
$form\u data
。在脚本结束时,最不应该发生的事情是将$form\u date存储到数据库中,并将生成的行id存储在$\u会话中。比如:

$form_data=serialize($form_object); //you can also serialize arrays, etc.
//$form_data may also need to be base64_encoded

$q="INSERT INTO incomplete_form_table(thedata) '$form_data'";    
$r=mysqli->query($q);
$id=$mysql->last_insert_id;
$_SESSION['currentform']=$id;
然后,当您进入下一页时,您可以按如下方式重新构建表单:

$q="SELECT thedata FROM incomplete_form_table WHERE id={$_SESSION['currentform']}";
$r=$mysql->query($q);
$form_data=$r->fetch_assoc();
$form=$form_data['thedata'];//if it was base64_encoded, don't forget to unencode it first
如果表中有时间戳字段,则可以定期(自动)清理
不完整的表单数据。只删除你认为过期的所有东西。< /P>

上面的代码没有被彻底检查语法错误。

你能举一个你正在创建的表格的例子吗?如果我理解了问题的要点,那么我认为您可以通过创建一个更永久的表来解决这个问题,该表描述了临时结构,与某种会话键相关联,但我想确保我们在同一页上…是的,我宁愿使用一个永久表,并在会话id上对其进行过滤。感谢您的回复。感谢您的反馈,我将尝试一下。