2017-06-24 71 views
0

我爲我的MySQL數據庫使用免費託管,但是當我嘗試通過我的PHP代碼連接到它時,它會引發未捕獲的PDOException錯誤,並且我的訪問被拒絕。我似乎無法找到爲什麼連接被拒絕,因爲我的憑證是正確的。如何解決未捕獲的PDOException?

我正在使用Ionic 2框架,如果有幫助。

錯誤:

<b>Fatal error</b>: Uncaught PDOException: SQLSTATE[HY000] [1045] Access denied for user 'sql10181809'@'153.92.0.10' (using password: YES) in /storage/ssd5/403/2053403/public_html/escanerproducto.php:33 
Stack trace: 
#0 /storage/ssd5/403/2053403/public_html/escanerproducto.php(33): PDO-&gt;__construct('mysql:host=sql1...', 'sql10181809', '\xE2\x81\xA0\xE2\x81\xA0\xE2\x81\xA0dfFf6l...') 
#1 {main} 
    thrown in <b>/storage/ssd5/403/2053403/public_html/escanerproducto.php</b> on line <b>33</b><br /> 

PHP連接代碼:

<?php 



@$db = new PDO("mysql:host=sql10.freesqldatabase.com;dbname=sql10181809", "sql10181809", "PASS"); 

if($db){ 
    $sql = "select * from producto WHERE 
       codigo_barra='".$codigodebarra."'"; 


    $query = $db->prepare($sql); 
    $query ->execute(); 
    $query->setFetchMode(PDO::FETCH_NUM); 
    if($fila = $query->fetch()){ 
     $nombre = $fila[2]; 
     $resultados_finales = array("nombre"=>$nombre); 
     echo json_encode($resultados_finales); 

    }else{ 
     $resultados_finales = array("mensage"=>"error"); 
     echo json_encode($resultados_finales); 
    } 
} else { 
     $resultados_finales = array('mensage' => "ERROR."); 
     echo json_encode($resultados_finales); 
}; 
?> 
+1

孔捕捉它親愛的麗莎 – RiggsFolly

+0

你是什麼意思? –

+0

猜你會和我一樣知道同一首童謠 – RiggsFolly

回答

1

捕獲異常,最好的辦法是把你的代碼在try catch塊。但在你的情況下,我認爲你的密碼不正確。導致錯誤(例外)的代碼應該放在try塊中,而不是像這樣捕獲它。

try{ 
    $db = new PDO("mysql:host=sql10.freesqldatabase.com;dbname=sql10181809", 
        "sql10181809", "PASS"); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    }catch(PDOException $e){ 
     echo $e->getMessage().' '.' '.getCode().' '.getLine().' 
      '.getFile(); 
    } 

你可以閱讀更多關於異常處理here

相關問題