mysqlの場合
<?php $db_name = 'mysql:dbname=test;host=localhost'; $db_user = 'root'; $db_pass = 'ないしょ'; //以下のoptionにより、PDOException が発生 $db_opt = [PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION]; try { $dbh = new PDO($db_name,$db_user,$db_pass,$db_opt); } catch (PDOException $e) { exit('ERROR fail PDO() ' . $e->getMessage()); } $sql = 'select * from test_tbl where id<=:id'; try { $sth = $dbh->prepare($sql); $sth->bindValue(':id', 1); $sth->execute(); } catch (PDOException $e) { exit('ERROR fail sql ' . $e->getMessage()); } // $ret_rows = $sth->fetchAll(PDO::FETCH_ASSOC); // var_dump($ret_rows); while($ret_row = $sth->fetch(PDO::FETCH_ASSOC)){ var_dump($ret_row); } ?>
↑こう書くと、↓こう表示されます
$ php foo_mysql.php array(2) { ["id"] => string(1) "1" ["val"]=> string(4) "VAL1" }
postgresの場合
と言っても、先程のmysqと比較して、接続時の $db_name が異なる程度です
<?php //$db_name = 'mysql:dbname=test;host=localhost'; $db_name = 'pgsql:dbname=db_rear_hon host=localhost port=5432'; $db_user = 'ないしょ'; $db_pass = 'ないしょ'; //以下により PDOException が有効化 $db_opt = [PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION]; try { $dbh = new PDO($db_name,$db_user,$db_pass,$db_opt); $sql = "SET NAMES 'UTF8'"; $sth = $dbh->prepare($sql); $sth->execute(); } catch (PDOException $e) { exit('ERROR fail PDO() ' . $e->getMessage()); } $sql = 'select * from test_tbl where id<=:id'; try { $sth = $dbh->prepare($sql); $sth->bindValue(':id', 1); $sth->execute(); } catch (PDOException $e) { exit('ERROR fail sql ' . $e->getMessage()); } // $ret_rows = $sth->fetchAll(PDO::FETCH_ASSOC); // var_dump($ret_rows); while($ret_row = $sth->fetch(PDO::FETCH_ASSOC)){ var_dump($ret_row); } ?>