php - 使用 PHP 将 Backbone JSON 对象保存到 MySQL 表

标签 php mysql json backbone.js decode

我正在保存 Backbone 模型数据,它将 JSON 对象 POST 到我的 save.php 文件中。由于模型数据将供我的应用程序的用户使用,因此我想在 MySQL 表中存储唯一值。

目前,我正在使用这种方法:

$values = json_decode(file_get_contents('php://input'), true);
$name = $values["name"];

$sql="INSERT INTO `users` (name) VALUES $name";

它给了我这个错误

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'John Doe' at line 1

如果我在查询中传递一个简单的字符串,它就会按照我想要的方式工作:

$sql="INSERT INTO `users` (name) VALUES ('John Doe')";

我的问题是:

  • 为什么 $name 不是字符串?
  • 这是将 JSON 对象插入 MySQL 表的最佳方式吗?

谢谢!

最佳答案

JSON只是数据的表示形式:解码后,$values["name"] 包含一个包含您的值的字符串,John Doe。这意味着您的请求将扩展为

$sql="INSERT INTO `users` (name) VALUES John Doe";

这既是无效语法,又非常不安全。

使用PDO class只要有可能,就像这样:

$sql = "INSERT INTO users (name) VALUES(?)";
$sth = $dbh->prepare($sql);
$sth->execute(array(
    $name
));

关于php - 使用 PHP 将 Backbone JSON 对象保存到 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17015663/

相关文章:

php - 如何在不等待完成的情况下逐步加载 ajax (jquery) 请求响应?

php - MySQL计算列值的实例并按列值排序

MySQL 基于日期的条件插入或更新

javascript - 如何更改二叉树索引中递归的保留?

javascript - EXTJS CSRF 保护

php - 从 mysql_fetch_array 结果获取行号

php - 最佳 PHP 邮件类

php - 选择并插入

java - REST GET 列表为 JSON

json - Swift 4 JSON解码