2013-11-12 3 views
-1

Ниже приведен код, который у меня есть, он написан в mysql. Моя цель - преобразовать это в PDO.mysql_result PDO

$query = "SELECT name, age FROM table WHERE condition=$condtion"; 
$mysql_query = mysql_query($query); 

echo $name = mysql_result($mysql_query, 0, 'name'); 
echo $age = mysql_result($mysql_query, 0, 'age'); 

Я пробовал сделать следующий код ниже, но это дает мне пустой результат.

$query = $PDO -> prepare("SELECT name, age FROM table"); 
$query -> execute(); 

echo $name = $query->fetch(PDO::FETCH_ASSOC)['name']; 
echo $age = $query->fetch(PDO::FETCH_ASSOC)['age']; 
+0

Попробуйте назначить результат '$ query-> Execute()' в переменную - то, что делает, что даст вам ? – andrewsi

+0

Это дает мне результат '1' – ILikebanana

+0

Можете ли вы изменить свой вопрос и показать, как вы его используете? – andrewsi

ответ

3

Try:

$query = $PDO->prepare("SELECT name, age FROM table WHERE condition = :param"); 
$query->bindParam(':param', $param); // define this somewhere 
$query->execute(); 
$result = $query->fetch(); 

echo $name = $result['name']; 
echo $age = $result['age']; 

От PHP.net, принесите работает следующим образом: Извлекает строку из результирующего набора, связанный с объектом PDOStatement. Параметр fetch_style определяет, как PDO возвращает строку.

Когда вы выполняете подготовленный оператор, вам нужно выполнить выборку или fetchAll, чтобы вытащить данные. fetch получает первую строку, а в вашем случае с условием = X, я предполагаю, что вам нужна только одна строка.

Обновлены ссылки для справки:

Execute: http://php.net/manual/en/pdostatement.execute.php

выборки: http://php.net/manual/en/pdostatement.fetch.php

+0

Да! Это работает! Благодаря! – ILikebanana

+0

добро пожаловать в SO. +1 для приятного ответа, просто ссылки на функции 'execute()' и 'fetch()' сделают это идеальным. – bansi

Смежные вопросы