将会话数据插入mysql数据库

时间:2013-11-19 07:37:27

标签: php mysql

<?php
session_start(); 
if (!isset($_SESSION)){
}
$total_amt=$_POST['total_amt'];
   $total_seats=$_POST['total_seats'];
   $boarding_point=$_POST['boarding_point'];
   $_SESSION['total_amt']=$total_amt;
   $_SESSION['total_seats']=$total_seats;
   $_SESSION['boarding_point']=$boarding_point;
?>
<?php
require_once("config.php");
$source_point=$_SESSION['source_point'];
$destination=$_SESSION['destination'];
$datepick=$_SESSION['datepick'];
$_SESSION['total_amt']=$total_amt;
$_SESSION['total_seats']=$total_seats;
$boarding_point=$_POST['boarding_point'];

// Insert data into mysql
$sql="INSERT INTO book_seat(from, to, datepick, total_amt, total_seats,    boarding_point) VALUES 
    '{$_SESSION['source_point']}',
    '{$_SESSION['destination']}',
            '{$_SESSION['datepick']}',
    '{$_SESSION['total_amt']}',
            '{$_SESSION['total_seats']}',
        '{$_SESSION['boarding_point']}')";
$result=mysql_query($sql);
if(isset($_POST['chksbmt']) && !$errors) 
{
    header("location:booking_detail.php");
}
if(!$sql) die(mysql_error());

mysql_close();

?>

我想将会话变量插入我的数据库..

这是我的代码,没有发生错误,页面重定向到booking_detail.php,但这些会话变量也没有插入到我的数据库中..

6 个答案:

答案 0 :(得分:1)

Fromto是保留字,请使用反引号

Reserved words in Mysql

$sql="INSERT INTO book_seat(`from`, `to`, datepick, total_amt, total_seats,    boarding_point) VALUES 
    '{$_SESSION['source_point']}',
    '{$_SESSION['destination']}',
            '{$_SESSION['datepick']}',
    '{$_SESSION['total_amt']}',
            '{$_SESSION['total_seats']}',
        '{$_SESSION['boarding_point']}')";

答案 1 :(得分:0)

评论您的header(),使用error_reporting(-1)打开错误报告,检查mysql_error()然后解决该问题。

从现在起我可以看到你在sql查询中遇到语法错误,因为你使用from作为列名,这是受限制的单词。你必须把它放在`。

答案 2 :(得分:0)

1)如果是单独的脚本,则启动会话 2)在您的查询中删除@Mihai建议的保留关键字 3)在您的查询中它应该是VALUES(而不是VALUES 4)正如您在评论leaving_from中未提及未插入Db中所述。    因为在您的脚本中,您没有为$_SESSION['source_point']分配会话值。

在您的脚本中将是: -

<?php
session_start(); 
   if (!isset($_SESSION)){
}

$total_amt  =   $_POST['total_amt'];
$total_seats =  $_POST['total_seats'];
$boarding_point =   $_POST['boarding_point'];

$_SESSION['total_amt']  =   $total_amt;
$_SESSION['total_seats']    =   $total_seats;
$_SESSION['boarding_point'] =   $boarding_point;
// Set here session value for $_SESSION['source_point'] as well,

答案 3 :(得分:0)

首先从所有会话变量中删除引号,例如:

{$_SESSION['source_point']}

其次,您在mysql_error检查之前重定向,先检查结果和错误,然后重定向:

if (!$result) {
  die(mysql_error());
}

if(isset($_POST['chksbmt']) && !$errors) 
{
 header("location:booking_detail.php");
}

答案 4 :(得分:0)

从顶部删除空格

<?php session_start(); 

如果这不起作用

在插入检查值之前

var_dump($_SESSION)存在于会话中  并将die(mysql_error());与查询一起使用

$result=mysql_query($sql) or die(mysql_error());;

答案 5 :(得分:0)

if(isset($_POST['chksbmt']) && !$errors) 
{
header("location:booking_detail.php");

}

如果chksbmt是提交按钮的名称,则在提交表单后将执行上述代码。 在插入之前,它在标题中提到的页面。 在大括号之上写下你所有的东西,使用

if(isset($_POST['chksbmt']) && !$errors) 
{
 //all your stuff, ex:storing in DB.
  if($result){
   header("location:booking_detail.php");

  }
}

我希望我能理解你的问题,这将是锻炼。