2017-06-15 123 views
1

我有这样的PHP代码从数据库的SQLite3 ::查询语法错误

<?php 
require_once ("db.php"); 
$db = new MyDb(); 

if (isset($_POST['limit']) && isset($_POST['start'])) { 

$start = $_POST["start"]; 
$limit = $_POST["limit"]; 

$query =<<<EOF 
SELECT * FROM questions ORDER BY quiz_id DESC '$start', '$limit'; 
EOF; 

$result = $db->query($query); 

while ($row = $result->fetchArray(SQLITE3_ASSOC)) { 
    echo 'div class="quesbox"> 
    <div class="questitle"> 
     <h2>'.$row["question"].'</h2> 
    </div> 
    <div class="quesanswer">'.$row["answer"].'</div> 
    <div class="quesdatetime"><img src="images/questime.png" alt="export question">'.$row["date"].'</div> 
    </div>'; 
} 

} 
?> 

获得的数据,但我每次运行这段代码时我得到这些错误

Warning: SQLite3::query(): Unable to prepare statement: 1, near "'0'": syntax error in C:\xampp\htdocs\xport\searchfetch.php on line 14 

Fatal error: Call to a member function fetchArray() on a non-object in C:\xampp\htdocs\xport\searchfetch.php on line 16 

我已经尝试了所有我知道通过编辑query声明来解决问题的可能方式,但无济于事。请从哪里来的问题。任何帮助,将不胜感激。

+0

请做'回声$查询;'。显然,查询有问题。 –

+0

这是'echo'结果'SELECT * FROM questions ORDER BY quiz_id DESC'0','7';'我试图从数据库中获取数据的极限,其中7是极限 – diagold

回答

2

你忘了LIMIT

$query =<<<EOF 
SELECT * FROM questions ORDER BY quiz_id DESC LIMIT '$start', '$limit'; 
EOF;