如何使用PHP将会话增量值插入数据库表?

时间:2015-03-18 14:52:36

标签: php mysql session

我需要将会话递增的值插入到数据库中,这里我可以增加像0001,0002这样的值等等,但问题是我无法将这些递增的值插入到数据库表中。

任何人都可以帮我解决这个问题吗?

这是我的代码:

    <?php
            $username="root";
            $password="sha12345";
            $hostname="localhost";

            $dbhandle = mysql_connect($hostname,$username,$password) or die("Could not connect to database");

            $select = mysql_select_db("sha", $dbhandle);
            session_start();
 if(!isset($_SESSION['rid']))$_SESSION['rid']=0;
            if(!empty($_POST['register']))
        {   
            $_SESSION['rid'] = $_SESSION['rid']+ 1;
            $input = $_SESSION['rid'];
            str_pad($_SESSION['rid'], 4, "0", STR_PAD_LEFT);

            $calender=$_POST['datum1'];
            $time=$_POST['timepicker_6'];
    mysql_query("INSERT INTO receipt(Bill_number,Date,Time) VALUES ('{$_SESSION['rid']}','$calender','$time')");
    require("fpdf/fpdf.php");

        $pdf=new FPDF();
        $pdf->Addpage();
    $pdf->SetFont("Arial","B",18);
        $pdf->Cell(0,10,"Receipt number:". str_pad($_SESSION['rid'], 4, "0", STR_PAD_LEFT),0,0,'C');
        $pdf->SetFont("Arial","B",18);
        $pdf->cell(0,10,"Date:{$calender} ",0,1,'R');  
        $pdf->cell(0,10,"Time:{$time}",0,1,'R');
    $pdf->output();

        }
    ?

非常感谢大家,现在我可以在使用varchar for Bill_number之后将会话增量值正确地插入到数据库表中。

但现在问题是我无法以0001,0002的格式将会话递增的值插入数据库等等。

非常感谢再次帮助我。

2 个答案:

答案 0 :(得分:0)

你已经在$_SESSION['rid'] = $_SESSION['rid']+ 1;这一行中获取了会话值,但是只有在页面刷新后才会获得新的会话值,所以它不会在这里发生,所以最后你传递{{1}中可用的旧值变量到查询。请看下面给出的解决方案。

$_SESSION['rid']

在查询中将 $IncrementValue = $_SESSION['rid']+ 1; 替换为{$_SESSION['rid']}。现在您的查询将如下所示:

$IncrementValue

您还需要更改下面的行

mysql_query("INSERT INTO 
             receipt(Bill_number,Date,Time) 
             VALUES ($IncrementValue,$calender,$time)
            ");

希望这会对你有所帮助。

答案 1 :(得分:0)

请检查:

  1. Bill_number varchar类型
  2. 您应该在PHP脚本的开头有session_start();,否则您的会话变量将被视为本地变量
  3. 在进入mysql_query&amp;之前准备查询然后打印出来。
  4. 此外,您可以在代码中将$_SESSION['rid'] = $_SESSION['rid']+ 1;替换为$_SESSION['rid']++;