php – 将Backbone.js模型插入MySQL数据库
我有一个带有一些默认值和url的backbone.js模型:
var Box = Backbone.Model.extend({ url: "./save.php",defaults: { x: 0,y: 0,w: 1,h: 1 } }); 然后我有一个这个模型的实例,我继续保存它: var box = new Box({ x:10,y:10,w:200,h:200 }); box.save(); 现在我想使用PHP脚本“save.php”将此模型保存到MySQL数据库中,它是这样的: <?php include('connection.php'); $id = $_POST['cid']; $x = $_POST['x']; $y = $_POST['y']; $w = $_POST['w']; $h = $_POST['h']; mysql_query("INSERT INTO boxes (id,x,y,w,h) VALUES('$id','$x','$y','$w','$h') ") or die(mysql_error()); ?> echo "Data Inserted!"; 我试过阅读很多教程,但是我无法将这个简单的模型保存到工作中.为什么我的代码不起作用?关于如何解决这个问题的任何想法? 谢谢 编辑:快速解决方案 在php脚本中,从发送的JSON对象获取信息的正确方法如下: $box_data = json_decode(file_get_contents('php://input')); $x = $box_data->{'x'}; $y = $box_data->{'y'}; $w = $box_data->{'w'}; $h = $box_data->{'h'}; 并存储在数据库中: mysql_query("INSERT INTO boxes(id,h) VALUES('','$h') ") or die(mysql_error()); 以这种方式,将在表“框”中插入一行,其中包含骨干模型框的每个属性的信息.
Backbone基于REST API:在将模型保存/更新到服务器时,Backbone会在请求主体中将其序列化为JSON,并发送POST我们的PUT请求.从
Backbone.sync documentation起
这意味着你必须要服务器端 >确定请求的类型 这样的事情应该让你开始 $request_method = strtolower($_SERVER['REQUEST_METHOD']); $data = null; switch ($request_method) { case 'post': case 'put': $data = json_decode(file_get_contents('php://input')); break; } // print_r($data); // note that mysql_* functions are deprecated // http://php.net/manual/en/function.mysql-query.php // inserting with a PDO object,assuming an auto incremented id $sql = "INSERT INTO boxes (x,h) VALUES(?,?,?)"; $sth = $dbh->prepare($sql); $sth->execute(array( $data->x,$data->y,$data->w,$data->h )); $id = $dbh->lastInsertId(); 查看此页面,以便在PHP http://www.gen-x-design.com/archives/create-a-rest-api-with-php/中更全面地实现REST API (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |