我很難過,我改變了主機,現在我正在調用腳本上的「調用非成員函數prepare()成員函數」已經在舊服務器上工作了數月。我在這裏讀了幾遍,嘗試了幾個我發現的東西,但似乎沒有什麼能讓它再次起作用。調用成員函數prepare()在服務器移動後的非對象
我是新來的,所以請慢慢說清楚。 )
$dbh = connect_db();
$sql = 'SELECT count(*) FROM ppipn WHERE txn_id = :txn_id';
$result = $dbh->prepare($sql);
$result->execute(array(':txn_id' => $txn_id));
$number_of_rows = $result->fetchColumn();
if ($number_of_rows>0){
die();
}
功能:
function connect_db()
{
$DbHost = 'localhost';
$DbName = '***n';
$DbUser = '***';
$DbPass = '***';
$table;
try
{
$connection = new PDO('mysql:host='.$DbHost.';dbname='.$DbName, $DbUser, $DbPass);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$connection->setAttribute(PDO::ATTR_PERSISTENT, true);
}
catch (PDOException $e)
{
// Proccess error
echo 'Cannot connect to database: ' . $e->getMessage();
}
return $connection;
}
你有沒有其實導出DB數據,然後輸入回在到新的服務器?我很難過。 – 2014-10-02 20:25:21
您的connect_db函數會捕獲連接錯誤,但它會繼續返回$ connection。你能分辨出是否拋出了PDOException嗎? – 2014-10-02 20:25:27
只爲咯咯地笑,因爲我很困惑爲什麼這不起作用,也沒有拋出異常,你可以在try塊上面聲明'$ connection = null;'並且看看它是否做了什麼。我幾乎肯定'try/catch'不會限制範圍,但值得一試。 – Crackertastic 2014-10-02 20:53:22