2012-11-21 44 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; 
    } 

} 

如果引发异常,则消息指示您的问题在哪里。