2014-01-03 2 views
0

Я бег этого PDO запроса:PHP PDO Выберите запрос не выбирает строку из базы данных

$stmt = $pdo_conn->prepare("SELECT * from billing_control where sequence = :sequence "); 
$stmt->execute(array(':sequence' => $_GET["sequence"])); 
$result = $stmt->fetch(); 

для выбора строк из базы данных, но когда я делаю var_dump ($ smtm); Я получаю этот результат:

object(PDOStatement)#2 (1) { ["queryString"]=> string(57) "SELECT * from billing_control where sequence = :sequence " } 

У меня есть ?sequence=178 на конце моего URL поэтому он должен быть запущен в SQL:

select * from billing_control where sequence = 178 

Любые идеи, что у меня не так?

+0

Вы подключены к БД? – Mihai

+1

Вы проверили значение, или если определено $ _GET ["sequence"]? – Hackerman

+0

Я считаю, что невозможно получить строку запроса с параметрами, вставленными с использованием класса defaul PDO, только если вы сделаете свой собственный. Вы должны проверить полученный запрос внутри своей БД. Также убедитесь, что вы задали свои параметры для исправления типа перед привязкой (или в методе bindParam) – gskema

ответ

0

Try:

$stmt = $pdo_conn->prepare("SELECT * from billing_control where sequence = :sequence "); 
$stmt->bindParam(':sequence', $_GET["sequence"]) 
$stmt->execute(); 

Другой вариант будет:

$stmt = $pdo_conn->prepare("SELECT * from billing_control where sequence = ? "); 
$stmt->execute(array("%$_GET[sequence]%")); 
+0

второй работает отлично, что не так с моим заявлением? – charlie

+0

код, который я поставил в моем вопросе, работает с другими запросами SELECT, есть ли причина, по которой он не работает? – charlie

+0

Эти запросы также включают привязку переменной к параметру GET? – durrrutti

0

Попробуйте

$query = $pdo_conn->prepare("SELECT * from billing_control where sequence = :sequence "); 
$query->bindParam(':sequence', $_GET["sequence"], PDO::PARAM_STR, 255); //I assume that sequence data is string 
$result = $query->execute(); 
Смежные вопросы