2016-10-01 2 views
0

나는 현재 PDO MySQL에서이 코드 조각을 변환하고있어 잘못 뭘하는지 알아낼 수 없습니다 :내가 준비된 문

$catquery = mysql_query("SELECT category, longdescription, locked, 
           catid, parentcatid, leveldown 
         FROM ".$tableprefix."fanfiction_categories 
         WHERE catid = '$catid'") 
       or die(_FATALERROR."Query: SELECT category, locked, catid, parentcatid, leveldown FROM ".$tableprefix."fanfiction_categories WHERE catid = '$catid'<br />Error: (".mysql_errno().") ".mysql_error()); 
$category = mysql_fetch_array($catquery); 

내가 PDO에 새로운 해요하지만 배우려고 노력하고있다 내가 할 수있는 일. 이것은 내가 PDO에 해낸 것입니다 :

$db = new PDO('mysql:host='.$db_host.'; dbname='.$db_name, $db_user, $db_pass); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$catquery = $db->prepare("SELECT category, longdescription, locked, catid, 
           parentcatid, leveldown 
          FROM ".$tableprefix."fanfiction_categories 
          WHERE catid=:catid"); 
$stmt -> bindPARAM (':catid', $catid, PDO::PARAM_STR); 
try { 
    $stmt->execute(); 
    echo "Sucess"; 
} catch (PDOException $e) { 
     echo $e->getMessage(); 
} 

심지어 여러 형태를 시도한 후, 정확히 이루어 bindPARAM 부분을 얻을 수 없습니다. 내가 간과하는 것이 있습니까? 나는 PDO와 관련하여 다소 혼란 스럽습니다. 누군가 내가 이것을 잘못 지적 할 수 있다면 좋을 것입니다.

+2

1) 중요하지 않을 수 있습니다 붙여 잊어 버린,하지만 기능은'bindParam' 2)는'$의 catquery'은 (문 개체입니다 '$ stmt'가 존재하지 않는 것처럼 보이지는 않습니다). –

+0

또한'$ .'에서'.'을 (를) 찾을 수없는 것처럼 보입니다. $ tableprefix "fanfiction_categories' @ 테이블 접두어와 테이블 사이 – RamRaider

+0

PHP에 대한보고 오류가 있었습니까? 적절한 설정에 대한 링크 된 답변을 참조하십시오. –

답변

1

은 아주 간단하게 당신/당신의 사본에서 모든 변수를 수정

$db = new PDO('mysql:host='.$db_host.'; dbname='.$db_name, $db_user, $db_pass); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$catquery = $db->prepare("SELECT category, longdescription, locked, catid, 
           parentcatid, leveldown 
          FROM ".$tableprefix."fanfiction_categories 
          WHERE catid=:catid"); 

//$stmt -> bindPARAM (':catid', $catid, PDO::PARAM_STR); 
$catquery -> bindPARAM (':catid', $catid, PDO::PARAM_STR); 
try { 

    //$stmt->execute(); 
    $catquery->execute(); 

    echo "Sucess"; 
} catch (PDOException $e) { 
     echo $e->getMessage(); 
} 
+0

예를 든 유일한 사람이되어 주셔서 감사합니다. 다른 답변도 감사하겠습니다. 나는 내가 엉망이 된 곳을보고있다. (그렇게 간단한 오류처럼 보인다.) 다시 감사합니다! – llawliet