2014-01-14 2 views
-1

PDO를 처음 사용하므로 저와 함께주십시오. 나는 이전의 mysql을 PDO로 변환하려고하는데, "치명적인 오류 : 5 행의 functions.php에있는 객체가 아닌 객체에서 prepare() 멤버 함수를 호출한다."PDO - 치명적 오류 : 개체가 아닌 개체에서 prepare() 함수를 호출하십시오.

그래서이 functions.php입니다 :

<?php 
require('config.php'); 
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD); 
function getSlug($param){ 
    $sth = $conn->prepare("SELECT * FROM articles WHERE slug = ?"); 
    $sth->execute(array($param)); 
    $slug = $sth->fetchAll(PDO::FETCH_ASSOC); 
    return $slug; 
} 
?> 

그리고 이것은 오류가 발생 페이지입니다 '는 문제를 일으키는 마지막 줄 $slug = getSlug($_GET['param']);이다하지만 내가 할 수처럼

<?php 
include('functions.php'); 
$param = $_GET['param']; 
$slug = getSlug($_GET['param']);  
?> 

보인다 그것을 해결하거나 다른 곳에서 뭔가있을 수 있습니다. 감사

당신은 그렇지 않으면 그 변수가 무엇인지 알 수 없습니다 (당신이 당신의 오류 메시지)는 getSlug 기능에 $conn를 통과해야
+3

PDO 따로 설명하자면 함수의 전역 변수를 사용하려고합니다. 주의를받지 못하면 PHP에서 오류를 표시하도록 구성하지 않았습니다. 문제를 해결해야합니다. –

답변

3

:

<?php 
require('config.php'); 
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD); 

function getSlug($conn, $param) { 
    $sth = $conn->prepare("SELECT * FROM articles WHERE slug = ?"); 
    $sth->execute(array($param)); 
    $slug = $sth->fetchAll(PDO::FETCH_ASSOC); 
    return $slug; 
} 
?> 


<?php 
include('functions.php'); 
$param = $_GET['param']; 
$slug = getSlug($conn, $param); 
?> 
+0

사실을 반영하여 업데이트되었습니다. – Jon

+0

이것은 아주 좋습니다. 이제 내가 할 때''모든 것을 돌려주었습니다 ('accept'포함).하지만 할 때''아무것도 반환되지 않습니다. 어떤 아이디어? – aphextwig

+1

다음과 같이하면됩니다 :'echo $ slug [0] [ 'accept'];'첫 번째 행의'accept' 컬럼의 값을 출력합니다 ... – Jon

관련 문제