2014-01-10 3 views
-2

Я изо всех сил пытаюсь преобразовать нижеследующее в PDO. Есть идеи? Спасибо за вашу помощь.Преобразование mysql_fetch_assoc в PDO

function getSlug($param) 
{ 
    $query = mysql_query("SELECT * FROM articles WHERE slug = '$param'") OR die(mysql_error()); 
    return mysql_fetch_assoc($query); 
} 
+1

Вы читали документ PDO? –

+0

Сначала вам нужно «подготовить» запрос. Затем «выполнить» это с помощью PARAMS.Тогда вы можете вернуть результат с помощью 'PDO: FETCH_ASSOC' Constant – underscore

ответ

2

PDO CONNECTION

Подключение и управление Подключение ¶

Connections are established by creating instances of the PDO base class. It doesn't matter which driver you want to use; you always use the PDO class name. The constructor accepts parameters for specifying the database source (known as the DSN) and optionally for the username and password (if any).

<?php 

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); <<== This is the PDO DATABASE OBJECT 

function getSlug($param) 
{ 
$sth = $dbh->prepare("SELECT * FROM articles WHERE slug = ?"); <<== First you need to prepare it 
$sth->execute(array($param)); <<== Then execute it using params 
$result = $sth->fetchAll(PDO::FETCH_ASSOC); <<== Then USe PDO Constant to get Associative array 
return $result; <<<== Then return it 

} 
?> 
+0

Я получаю эту ошибку сейчас:« Ошибка анализа: синтаксическая ошибка, неожиданность »: «в строке 6». – aphextwig

+1

Edited.I пропустил ':' in 'PDO :: FETCH_ASSOC' – underscore

+0

Спасибо за обновление, но теперь я получаю еще одну ошибку:« Неустранимая ошибка: вызов функции-члена для подготовки() для не-объекта в строке 5 » – aphextwig

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