2013-06-14 2 views
0

Предположим, у меня есть этот запрос в моем postgresql.запрос работает на postgresql, но не на php

SELECT * FROM logs WHERE user_id = 8328 AND punchin::date = '2013-06-11'; 

он возвращает успешный.

Но когда я implent его в PHP:

$sql = "SELECT * FROM logs WHERE user_id = $user_id AND punchin::date = $date"; 
$record = pg_query($sql); 
$row = pg_fetch_array($record); 

var_dump($row) //false 

, что случилось? почему я не могу получить данные?

+0

Это все из PHP? вы сначала подключаетесь к базе данных? Какова стоимость $ user_id? – immulatin

+0

есть. Я попытался подключиться к базе данных. значение переменных arer такое же, как и данные, приведенные поверх него. $ user_id = 8328 и $ date = '2013-06-11' – user2429302

ответ

1

изменение Try

$sql = "SELECT * FROM logs WHERE user_id = $user_id AND punchin::date = $date"; 

в

$sql = "SELECT * FROM logs WHERE user_id = '$user_id' AND DATE(punchin) = '$date'"; 

еще лучше использовать параметры

$sql = "SELECT * FROM logs WHERE user_id = $1 AND CAST(punchin AS DATE) = $2"; 
$result = pg_query_params($sql, array($user_id, $date)); 
+0

@ user2429302 Помогло ли это? Вам нужна дополнительная помощь по вашему вопросу? – peterm