2012-11-21 42 views
0

這裏是我的代碼:PDO功能新功能沒有做任何事情?

function connect() { 
    $pdo = new PDO("mysql:host=localhost;dbname=www","user","pass"); 
    $xmax = "SELECT MAX(x) FROM headerfooter WHERE site = 'Brighter_Vista'"; 
    $xresult = $pdo->query($xmax); 
    while($row = $xresult->fetch(PDO::FETCH_ASSOC)) { 
     print_r($row); 
    } 
    $ymax = "SELECT MAX(y) FROM headerfooter WHERE site = 'Brighter_Vista'"; 
    $yresult = $pdo->query($ymax); 
    while($row = $yresult->fetch(PDO::FETCH_ASSOC)) { 
     print_r($row); 
    } 
} 

我調用該函數並沒有顯示出來。

我檢查了mysql終端中的查詢,它確實有效。

我是新來的PDO,我做錯了什麼?

+0

相反$ pdo-> prepare()和$ pdo-> execute(), $ pdo-> query()返回已經結果集,嘗試print_r($ xresult)在你的情況下,看看什麼它擁有 –

+0

我假設你正在運行try catch塊之間的函數:'try {connect(); } catch(PDOException $ e){exit($ e-> getMessage()); }'。對? – Shoe

回答

1

該函數在語法上是正確的。一切似乎都是正確的,我能看到的唯一問題與PDO試圖連接的問題有關。在以下情況下

function connect() { 
    try { 
     $pdo = new \PDO("mysql:host=localhost;dbname=www","user","pass"); 
     $xmax = "SELECT MAX(x) FROM headerfooter WHERE site = 'Brighter_Vista'"; 
     $xresult = $pdo->query($xmax); 
      while($row = $xresult->fetch(PDO::FETCH_ASSOC)) 
       print_r($row); 
     $ymax = "SELECT MAX(y) FROM headerfooter WHERE site = 'Brighter_Vista'"; 
     $yresult = $pdo->query($ymax); 
      while($row = $yresult->fetch(PDO::FETCH_ASSOC)) 
       print_r($row); 
    } catch (\PDOException $e) { 
     exit($e->getMessage()); 
    } 
} 

該功能顯示或避免錯誤:就在這一個取代你的函數

  • 任何PDO錯誤
  • 語境中,你使用的命名空間
1

將您的查詢包裝在try catch塊中。偶然的機會就是失敗。

function connect() { 
    try{ 
     $pdo = new PDO("mysql:host=localhost;dbname=www","user","pass"); 
     $xmax = "SELECT MAX(x) FROM headerfooter WHERE site = 'Brighter_Vista'"; 
     $xresult = $pdo->query($xmax); 
     while($row = $xresult->fetch(PDO::FETCH_ASSOC)) { 
      print_r($row); 
     } 

     $ymax = "SELECT MAX(y) FROM headerfooter WHERE site = 'Brighter_Vista'"; 
     $yresult = $pdo->query($ymax); 
     while($row = $yresult->fetch(PDO::FETCH_ASSOC)) { 
      print_r($row); 
     } 
    }catch (Exception $e){ 
     echo $e->getMessage(); 
     exit; 
    } 

} 

如果引發異常,則消息指示您的問題在哪裏。