2016-10-01 25 views
0

我目前正在轉換這段代碼從MySQL到PDO做什麼錯誤:想不通,我在準備好的聲明

$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'是Statement對象(從準備)不是'$ stmt'這看起來不存在。 –

+0

也看起來像你可能錯過'.' from'「。$ 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