1

我之前的SQL SELECT代码处理了这个 AJAX 请求,但我想将它转换为 PDO 语句。

JavaScript

$.ajax({  
    type: "POST",  
    url: "ajax.php",  
    data: "mail="+ mail,  
    success: function(msg){  
    if(msg == 'mail already in use'){
    ....  

ajax.php

$dsn = "mysql:host=localhost;dbname=vedic;charset=utf8";
$opt = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$pdo = new PDO($dsn,'root','', $opt);

if(isset($_POST['mail'])){
$mail = $_POST['mail'];

$stm = $pdo->prepare("select id from members where email='$mail'");
$stm->execute(array($id));
$name = $stm->fetchColumn();

现在怎么办?如何获得可以在 AJAX 中使用的结果?

4

1 回答 1

4

您应该了解您正在阅读的内容,而不仅仅是复制粘贴。
看看你读到了什么:

使用准备好的语句是使用 PDO 的主要原因。
每个动态数据文字都必须在查询中由名称 (:name) 或常规占位符 (?) 表示。

但是你做了什么?将您的数据直接插入查询中:

$stm = $pdo->prepare("select id from members where email='$mail'");

为什么不使用占位符制作此代码?

现在怎么办 ?

修复您的代码以使其合理且有效。

如何获得可以在 ajax 中使用的结果?

您发布的代码已经应该采用所需的值,您可以在任何您希望的地方使用它。

请花一点时间研究这段代码,玩弄它,让自己熟悉它。请记住,本网站不是免费的编码服务。答案中的代码不一定必须开箱即用。一个答案应该给你一个想法,而不是做你的工作。

于 2013-09-04T14:51:22.120 回答