【问题标题】:send json from jquery to php and insert into database将 json 从 jquery 发送到 php 并插入数据库
【发布时间】:2016-03-31 12:51:38
【问题描述】:

我需要将网页中的数据插入数据库。我正在使用此代码将其发送到 php 文件

    $.getJSON('./calendar.php?action=save&id=0&start='+ds.getTime()/1000+'&end='+df.getTime()/1000,
      { 
        'body':$('#calendar_new_entry_form_body').val(), 
        'title':$('#calendar_new_entry_form_title').val() 
      }

然后我想将这 4 个字段插入到 mySQL 数据库中。现在,我可以使用

检索数据
  $start_date=(int)$_REQUEST['start'] - 60*60;

  $data=array( 
    'title'=>(isset($_REQUEST['title'])?$_REQUEST['title']:''), 
    'body' =>(isset($_REQUEST['body'])?$_REQUEST['body']:''), 
    'start'=>date('c',$start_date), 
    'end'  =>date('c',(int)$_REQUEST['end'] - 60*60) 
    ); 

然后我将它保存到会话变量中,看看我是否真的收到它

  $id=(int)$_REQUEST['id']; 
  if($id && isset($_SESSION['calendar'][$id])){ 
    $_SESSION['calendar'][$id]=$data; 
  }  
  else{ 
    $id= ++$_SESSION['calendar']['ids']; 
    $_SESSION['calendar'][$id]=$data; 
  }

我在另一个页面的会话中使用 var_dump 并且数据正在正确通过。

session_start(); 
var_dump($_SESSION);
echo "<br>";
echo $_SESSION['calendar'][1]['title'];
echo "<br>";
echo $_SESSION['calendar'][1]['start'];

我似乎无法将这些数据插入数据库。每次我尝试运行查询时,都没有任何反应。

我使用的查询是:

$query1 = "INSERT INTO `doc`.`appointment` (`start`, `end`, `title`, `body`) VALUES ('$data['start']', '$data['end']', '$data['title']', '$data['body']');";
      $result1 = $con->query($query1);

【问题讨论】:

  • 您还没有向我们展示任何查询。如果您对查询有疑问,请编辑您的问题以包含查询和表架构。
  • 添加查询到帖子,抱歉。
  • echo 生成的查询并尝试在 PHPMyAdmin 中运行它。
  • 摆弄它,如果我将这些值分配给变量,然后在查询中插入变量,它就可以工作。感觉有点波涛汹涌,但我想现在就可以了……

标签: php jquery mysql json


【解决方案1】:

您的查询

$query1 = "INSERT INTO `doc`.`appointment` (`start`, `end`, `title`, `body`) VALUES ('$data['start']', '$data['end']', '$data['title']', '$data['body']');";
  $result1 = $con->query($query1);

我已经改正了一点试试这个

$query1 = "INSERT INTO `doc`.`appointment` (`start`, `end`, `title`, `body`) VALUES (".$data['start'].", ".$data['end'].", ".$data['title'].", ".$data['body'].")";
  $result1 = $con->query($query1);

【讨论】:

  • 什么也没发生。可能是因为我将开始和结束时间更改为日期类型吗?如果我将它们添加为 int (在对数据库进行propper更改之后)它可以工作。
  • 澄清一下,我将时间更改为 ISO 8601 日期
猜你喜欢
  • 2020-09-03
  • 1970-01-01
  • 2013-01-31
  • 2019-01-07
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
  • 2013-05-17
相关资源
最近更新 更多