我想使用数组作为数据库

时间:2015-04-23 12:45:01

标签: javascript php session

我正在开发一个小应用程序,我需要将数组用作数据库。我有一个名为 index.php 的php文件中包含名称和年龄字段的表单。我的 Index.php 如下所示:

<pre><code>
<?php 
session_start(); 
$_SESSION['var'] = 0;
?>

<html>    
<body>
<form action="weloome.php" method="post">
    Name : <input type="text" name="name"/><br/>
    Age  : <input type="text" name="age"/><br/>
    <input type="submit" name="submit" value="Submit" onsubmit=
    "<?php $_SESSION['var'] += 1; ?>/>">  
</form>
</body>
</html>
</code>

在这段代码中我使用会话变量var,它在表单的onsubmit事件上获得增量。它会增加,因为我希望所有值都存储在名为db_array()的数组中。

这是第二个文件 welcome.php

<?php
    session_start();
    $db_array[$_SESSION['var']][0] = $_POST['name'];
    $db_array[$_SESSION['var']][1] = $_POST['age'];
    print_r($db_array);
?>
<a href="index.php">Want to Add more Record? Click Here</a>

但问题是$_SESSION['var'] = 0;每次都初始化为零 当用户点击上面的链接时。这就是为什么只显示最后一条记录,因为数组被覆盖。解决这个问题的任何方法?

提前致谢。

6 个答案:

答案 0 :(得分:1)

添加条件:

if (!isset($_SESSION["var"]) {
    $_SESSION["var"] = 0;
}

只有在之前尚未初始化会话时才会初始化会话。

答案 1 :(得分:1)

是正确的名字吗?这是一个错字吗?

答案 2 :(得分:0)

这里你去:如果你的变量为空,它将用零初始化它,否则它将保持不变; - )

<?php 
if(!$_SESSION['var'])
    $_SESSION['var'] = 0;
?>

答案 3 :(得分:0)

您可以使用此检查

if(session_id()=="")
{
   session_start();
   $_SESSION['var']=0;
}

只有在找不到会话时才会执行。

答案 4 :(得分:0)

在PHP版本5.4 *及更高版本中,这是查看会话是否已启动的最有效方式。

if(session_status() !== PHP_SESSION_ACTIVE)
{
  // session is not started yet
  session_start();
}

答案 5 :(得分:0)

如果你想进一步开发它,你可以使用序列化函数将它转换成你可以存储的东西,或者在一个cookie中,或者一个文件或一个数据库。

serialize函数将数组转换为可以存储的字符串。看起来像json。

如果您有任何疑问,有没有办法通知我?我可以关注facebook / twitter上的人吗?