我需要将会话增加的值插入数据库,在这里我可以增加00010002等值,但问题是我不能将这些增加的值添加到数据库表中。
有人能帮我解决这个问题吗?
这是我的代码:
<?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();
}
?
真的很感谢大家,现在我可以在为Bill_number使用varchar后,将会话增量值正确插入数据库表中。
但现在的问题是,我无法将会话增量值以00010002等格式插入数据库
如果再帮我的话,真的很感谢。
请检查:
- 列Bill_number为
varchar
类型 - 您应该在PHP脚本的开头有
session_start();
,否则您的会话变量将被视为本地变量 - 在传递到
mysql_query
&然后打印
此外,您可以在代码中用$_SESSION['rid']++;
替换$_SESSION['rid'] = $_SESSION['rid']+ 1;
。
您已经在$_SESSION['rid'] = $_SESSION['rid']+ 1;
的这一行中获取了会话值,但只有在页面刷新后才会获得新的会话值,所以这里不会发生这种情况,所以最后您将$_SESSION['rid']
变量中相同的旧值传递给查询。请看下面给出的解决方案。
$IncrementValue = $_SESSION['rid']+ 1;
并将查询中的{$_SESSION['rid']}
替换为$IncrementValue
。现在您的查询将显示为:
mysql_query("INSERT INTO
receipt(Bill_number,Date,Time)
VALUES ($IncrementValue,$calender,$time)
");
您还需要更改下面的
str_pad($IncrementValue, 4, "0", STR_PAD_LEFT);
希望这对你有帮助。