2012-09-29 67 views
1
$dbh= new PDO('mysql:host=127.0.0.1;dbname=prawntube', "uname", "aaaaa"); 
$s=$dbh->prepare("call smessage_select(:sm,:lang)"); 
$s->bindParam(":sm", $sm,PDO::PARAM_STR); 
$s->bindParam(":lang", $lang,PDO::PARAM_STR); 
/* 
    $dbh->execute(); 
    $title=$s->fetch(); 
*/ 

當我註釋掉段時,我沒有錯誤。否則,我得到內部服務器錯誤500.我正在使用MySQL驅動程序和我的連接字符串是好的。任何猜測?pdo執行給出500內部服務器錯誤

+0

如果這是一個生產密碼,請更改它,我保證你不是唯一一個接觸到它的人。 –

+1

**檢查您的錯誤日誌** –

回答

4

類別PDO沒有execute方法。你可能打算寫$s->execute,或(不太可能)$dbh->exec$dbh->query

+2

OP顯然使用準備好的statmenets('$ dbh-> bindParam')。所以沒有'$ dbh-> query' :) –

+1

@MadaraUchiha:好的。把所有的選項放​​在桌子上。 – Jon

+0

@Jon TBH這種方式更令人困惑,因爲如Madara所說,其他選項有點不對。 – Christian

3

您需要使用$s->execute()而不是$dbh->execute()。查看PDO文檔..您可能需要使用的語句對象($s)和連接對象($dbh)上有很多方法,因此您應該熟悉API。