我嘗試寫的OAuth類VK能夠在我的網站驗證用戶身份。我面臨的問題是,我在Windows上編寫的代碼在Linux上根本無法工作。PDO無法在Linux下運行的查詢
我已經成功地通過PHP-> PDO腳本連接到我的Linux數據庫,但問題是,任何功能的IM試圖執行,即時通訊無法獲得響應或查詢,只是沒有發生。
這裏是函數的例子:
Class Account
{
private $Connection;
private $ErrorHandler;
private $Template;
public function __construct()
{
global $DB, $Error, $Smarty;
$this->Connection = $DB->DBConnection;
$this->Template = $Smarty;
$this->ErrorHandler = $Error;
}
public function CheckDataWithVK($Username, $First_Name, $Last_Name, $Birth_Date)
{
$StatementHandler = $this->Connection->prepare("SELECT username,email,first_name,last_name FROM account WHERE username LIKE :username OR first_name LIKE :fname AND last_name LIKE :lname");
$StatementHandler->execute(array(':username' => $Username, ':fname' => $First_Name, ':lname' => $Last_Name));
$Result = $StatementHandler->fetch(PDO::FETCH_ASSOC);
if($Result['username'] == $Username)
{
$BuildUserNameArray = array('Username' => $Username, 'Email' => $Result['email'], 'Name'=> $Result['first_name'], 'Surname' => $Result['last_name']);
return $BuildUserNameArray;
}
else
{
if($Result['first_name'] == $First_Name && $Result['last_name'] == $Last_Name)
{
$BuildCredentialsArray = array('Username' => $Result['username'], 'Email' => $Result['email'], 'Name'=> $First_Name, 'Surname' => $Last_Name);
return $BuildCredentialsArray;
}
else
{
return false;
}
}
}
所以在Windows上,即時通訊能夠獲得的所有數據,並檢查用戶是否在數據庫中存在,但不能在Linux上。
讓我自私,說在這種事情,即時通訊怪胎,但即使PDO返回任何異常,因此即時通訊無法跟蹤的數據流併發生錯誤。
我已經檢查日誌,但似乎並不甚至執行該語句...
任何幫助嗎? 在此先感謝
順便說一句,即時通訊在我的所有網站上使用相同的類,它只是一個行爲像這樣....是的,我tripple檢查所有設置,一切都是正確的。使用 此外,IM:
$this->DBConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
所以至少,如果有例外,我應該看到的東西,但我什麼也看不到 - >無例外
這裏是我的Database.Class.php:
public $DBConnection;
private $Template;
public function __construct($username, $password, $database)
{
global $Smarty;
$this->Template = $Smarty;
try
{
$this->DBConnection = new PDO("mysql:host=127.0.0.1;dbname=".$database, $username, $password, array(PDO::ATTR_PERSISTENT => true));
$this->DBConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
$message = $e->getMessage();
$this->Template->assign('ErrorHeader', $this->Template->getConfigVars('DatabaseError'));
$this->Template->assign('ErrorMessage', $e->getMessage());
$this->Template->Display('ErrorHandler.tpl');
echo "<!-- FreedomCore Servers: PDO Connection Error: $message -->\n";
die();
}
}
我的不好,忘了提....白癡.... 我能夠插入值,但有問題,此特定功能
運行phpinfo()函數,看看是否PDO啓用 –
打開'error_reporting'。 – Sammitch
PDO已啓用且error_reporting根本不顯示任何內容 –