使用索引创建PHP PDO查询?

使用索引创建PHP PDO查询?,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我目前正在做一个项目,是建立一个调查网站。我的想法是,每次用户单击“下一步”,都会出现一个新问题。mysql数据库中的每个问题都有一个名为“q_order”的问题顺序(不确定这是否是最佳方法)。我试图在点击时调用jquery函数,将索引增加1,然后将其发送到一个PHP文件,该文件随后使用该问题的索引号创建一个查询。我在我的JS函数中使用这个: function sample2() { pindex = pindex + 1; $('#question').load('DBSurv

我目前正在做一个项目,是建立一个调查网站。我的想法是,每次用户单击“下一步”,都会出现一个新问题。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语句时,我得到了正确的结果。我想看看除了故障排除,我还能做些什么?有没有关于如何更好地设置的建议?我走对了吗?提前谢谢

function sample2() {
    pindex = pindex + 1;
    $('#question').load('DBSurvey.php?index' + pindex);
}
这是错误的。GET参数应具有以下形式:?变量=值。您只是忘记添加“=”符号

我不得不注意的一件事是,当您使用pindex=pindex+1;时;。您应该使用pindex++使代码更干净

最后,您的功能应该是:

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

$(“#问题”).load('DBSurvey.php?index'+pindex)
应该是
$('#question').load('DBSurvey.php?index='+pindex)
rowCount()可能不会返回SELECT的行数。请使用带有COUNT的查询。是的,PDO并不完美。谢谢,我最初使用的是pindex++;但是改变了,我不知道为什么。我会调查一下你说的话。很高兴听到这句话能帮你解决问题。如果它确实解决了问题,请不要忘记单击复选标记以接受答案。欢迎来到StackOverflow!