【问题标题】:Best approach to add records into DB using php/ajax/mysql?使用 php/ajax/mysql 将记录添加到数据库的最佳方法?
【发布时间】:2012-08-15 03:50:43
【问题描述】:

想知道是否有人可以为我目前集成 php/js/mysql 的方法提出更好的方法。

我使用这种方法返回样本数据、设置唯一值等效果很好,而且效果很好(使用各种身份验证方法来减缓攻击尝试)。但是,我现在想添加比较多的数据,想知道有没有更好的方法?

目前我这样做:

JS

$.ajax( {
    type : "GET",
    url : "_dbGetSomeData",
    dataType : "html",
    success: function(data) {
        parseData(data);
    }
});

PHP

<?php 
include '_common.php'; 
include '_auth.php';

$INPUT_EMAIL= mysql_real_escape_string($_GET["e"]);
$INPUT_FINGERPRINT = $_SESSION[SESH_VAR_NAME];

//--- Do some SQL stuff in the DB
?>

这适用于一次性数据请求或设置一个值,但我可以使用此方法保存更多数据吗?我真的不想开始在 _db PHP 文件中发布大量查询字符串。

【问题讨论】:

  • 使用 POST 代替 GET,使用 PDO 或 mysqli 和准备好的语句代替 mysql 和 real_escape_string。
  • 您的意思是要返回批量数据吗?
  • 不,我只想设置/存储大量数据。我会调查准备好的陈述。似乎比循环中的许多异步 ajax 调用更好的方法来处理将数据保存在本地数据库中的 php 页面。干杯小伙子。
  • DCoder,好的,请阅读这些,它们看起来很棒,而且是更好的方式来准备我的数据库交互。但是,它并没有真正解释我最终将如何将数据从 JS/HTML 页面(例如带有行的表对象)发送到 PHP 页面(通过 ajax 调用)。如果可能的话,我想避免将巨大的查询字符串发送到 PHP 页面然后进行解析
  • POST 不发送查询字符串。如果你想设置很多数据,你必须以某种方式全部发送,还有什么替代方法?

标签: php javascript mysql ajax methodology


【解决方案1】:

这是一个使用 jQuery/PHP/MySQL 处理 Ajax 请求的示例

JS

var postData = {
    first_name: 'Foo',
    last_name: 'Bar',
    phone: '1-555-432-1234'
};

$.post('path/to/ajax/url.php', postData)
 .done(function(response) {
    alert("Data Loaded: " + response);
 });

PHP

// Connect to MySQL
$dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

// We want do some validation on the data so we can make a function called
// `validate()` if you want.
$data = validate($_POST);

$stmt = $dbh->('INSERT INTO my_table (first_name, last_name, phone) 
    VALUES (:first_name, :last_name, :phone)');

$stmt->execute($data); 

【讨论】:

  • 不错的解决方案。比我的代码更整洁。非常感谢克里斯伦敦
猜你喜欢
  • 2020-02-29
  • 2015-01-09
  • 2011-09-08
  • 2015-05-21
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
相关资源
最近更新 更多