我刚刚开始使用backbone.js,我正在使用Nettuts上的这个教程。 http://net.tutsplus.com/tutorials/javascript-ajax/getting-started-with-backbone-js/
var user = Backbone.Model.extend({
initialize: function(){
console.log('user was initialized!');
},
defaults:{
'name' : 'wern',
'full_name' : 'rem falkner',
'password' : 'secret',
'email' : 'secret@gmail.com'
}
})
var u = new user()
然后我使用了save方法:
u.save(undefined, {url : 'inserts.php'})
Inserts.php包含:
<?php
include('conn.php');
$name = $_POST['name'];
$password = md5($_POST['password']);
$email = $_POST['email'];
$db->query("INSERT INTO tbl_users SET user_id='$name', pword_hash='$password', full_name='$name', email='$email'");
?>
我的代码出了什么问题?它似乎是在数据库中插入的,因为无论何时我调用save()方法,它都会在用户表上插入一些内容,但只能在密码字段中插入。
答案 0 :(得分:7)
当您调用.save()方法时,会将JSON对象发送到您指定的URL;如果模型是新的,将使用POST方法。当在PHP脚本中收到JSON时,您必须解码它并保存模型属性,让我们说每个属性一个字段。在'inserts.php'中更改此内容:
<?php
include('conn.php');
$data = json_decode(file_get_contents('php://input'));
$name = $data->{'name'};
$password = md5($data->{'password'});
$email = $data->{'email'};
//proceed to add every variable to a field in the database
//...
答案 1 :(得分:0)
在$ db-&gt;查询之前的行中的PHP代码中,执行以下操作:
echo $name, '<br>', $password, '<br>', $email;
创建一个带有名称密码电子邮件字段的传统HTML表单,并测试PHP脚本,确保您输入的名称密码和电子邮件地址显示在屏幕上。
如果成功,您的错误可能在您的数据库查询中。对于初学者来说,您的代码看起来很容易受到SQL注入攻击。您需要发布一些有关您正在使用的DBMS的信息(MySQL,MSSQL,PostgreSQL等)。无论如何,查询看起来不对。同时发布您的CREATE TABLE命令。