2017-01-23 63 views
0

我有一個下載腳本,它獲取文件的id並在數據庫中搜索並找到它的名稱。但是,當我包含我的數據庫連接文件下載時被損壞。 當我評論我的數據庫連接,並給文件名手動文件下載工作正常。 我測試我的數據庫連接,並沒有任何excpetion或任何html輸出,你認爲我的問題是什麼?使用db連接時我的文件損壞

<?php 
session_start(); 
try{ 
    $db= new PDO("mysql:host=localhost;dbname=dbname","user","pass"); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
    $db->exec("SET NAMES 'utf8'"); 
}catch (Exception $e){ 
//echo "something wrong in db.php"; 
echo $e->getMessage(); 
exit; 
} 
?> 

我在Windows Server的IIS運行我的代碼,如果事情確實

+0

解決finaly問題(http://php.net/manual/en/class.pdoexception.php ) - 然後告訴我們你的錯誤,閱讀文檔。 – KDOT

+0

@KDOT仍然沒有任何異常 – peyman

+0

那麼這是不是告訴你在這個文件中沒有問題?打開錯誤報告並更新您的問題與錯誤和代碼導致錯誤 – KDOT

回答

0

就與此代碼嘗試..

error_reporting(E_ALL); 
ini_set('display_errors','1'); 
    $dsn = 'mysql:dbname=testdb;host=127.0.0.1'; 
    $user = 'dbuser'; 
    $password = 'dbpass'; 

    try { 
     $dbh = new PDO($dsn, $user, $password); 
     $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } catch (PDOException $e) { 
     echo 'Connection failed: ' . $e->getMessage(); 
    } 

它會回報你的錯誤。

+0

我可以問你,爲什麼這個答案在任何測試之前downvote。 –

+0

我不低調。 – peyman

+0

它確定..你用我的代碼嘗試..它不是你的錯..有些人在stackoverflow不知道規則的stackoverflow –

0

後幾天掙扎和頭痛[`抓(PDOException $ E)`]刪除try catch塊

+0

請與正確的代碼分享您的答案。 –