使用索引创建PHP PDO查询?

时间:2013-12-12 14:48:46

标签: php jquery mysql ajax

我目前正在开展一个旨在创建调查网站的项目。我的想法是,每次用户点击下一个时,都会出现一个新问题。 mysql数据库中的每个问题都有一个名为'q_order'的问题顺序(不确定这是否是最佳方法)。我试图在该单击上调用一个jquery函数,将索引增加1,然后将其发送到PHP文件,然后创建一个带有该索引号的查询。我在我的JS函数中使用它:

function sample2() {
    pindex = pindex + 1;
    $('#question').load('DBSurvey.php?index' + pindex);
}

在我的PHP中我有这个:

<?php
    $user='***';
    $pass='***';
    try {
        $dbh = new PDO('mysql:host=localhost;dbname=***', $user, $pass);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } 
    catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }
    $index = 0;
    $index = $_GET['index'];    

    $sth = $dbh->prepare('SELECT question FROM Questions where q_order=:index');
    $sth->execute(array(":index" => $index));
    $question = $sth->fetchAll();
    $numRecords = sth->rowCount();
    if($numRecords < 1)
        echo "no records";
    else
        print_r($question);
?>

我的问题是什么都没有得到回应,我不知道为什么。有时我能够打印“Array()”,我认为这意味着它是一个空数组?我不确定为什么它会是空的,因为当我在我的mysql控制台中执行相同的prepare语句时,我得到了正确的结果。我想看看接下来麻烦拍摄我能做些什么?关于如何更好地设置它的任何建议?我是否走在正确的轨道上?提前谢谢。

1 个答案:

答案 0 :(得分:1)

function sample2() {
    pindex = pindex + 1;
    $('#question').load('DBSurvey.php?index' + pindex);
}

错了。 GET参数应具有以下形式:?variable = value。你只是忘了添加“=”符号。

我不禁注意到的一件事是你使用pindex = pindex + 1;。您应该使用pindex ++来使代码更清晰。

最后你的功能应该是:

function sample2() {
    pindex++;
    $('#question').load('DBSurvey.php?index=' + pindex);
}