2013-09-18 3 views
0

Я пытаюсь получить результаты запроса к базе данных, но LIMIT не работает. Когда я помещаю LIMIT 10, он не возвращает никаких результатов. Я что-то упустил?PDO SQL Query Not Limiting

Вот мой код. Я пытаюсь понять, в чем причина этого странного поведения.

$username = "derek"; 
$query = $conn->prepare('SELECT * FROM notifications WHERE (needs=:username OR worker=:username1) ORDER BY CASE WHEN needs=:username2 THEN needsread ELSE workerread END, time DESC LIMIT 10'); 

$query->bindParam(':username', $username); 
$query->bindParam(':username1', $username); 
$query->bindParam(':username2', $username); 
$query->execute(); 
+0

Вы связываетесь с параметрами, которых не существует. – Daedalus

+0

$ имя пользователя в моем коде выше, просто нет в этом коде. Я положу его в редактирование. – user2362601

+0

Вы привязываетесь к ': username1' и': username2', которых нет в вашем запросе; последний я проверил, что вызывает ошибки. – Daedalus

ответ

1

Закончено, что-то с моими заявлениями if. Я получал результаты, но после фильтрации через мои операторы if 10 результатов, которые я хотел показать, не должны отображаться. Таким образом, после исправления моего запроса к базе данных это сработало. Вот мой вопрос:

$workneed = "workneed"; 
$follow="follow"; 

$query = $conn->prepare('SELECT * FROM notifications WHERE CASE WHEN needs=:username THEN type=:workneed END OR CASE WHEN worker=:username THEN type=:follow END ORDER BY CASE WHEN needs=:username THEN needsread ELSE workerread END, time DESC LIMIT 10'); 
$query->bindParam(':username', $username); 
$query->bindParam(':workneed', $workneed); 
$query->bindParam(':follow', $follow); 
$query->execute();