以下の内容はhttps://end0tknr.hateblo.jp/entry/20210131/1612068892より取得しました。


phpのPDOによるmysql / postgres接続練習

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);
}
?>



以上の内容はhttps://end0tknr.hateblo.jp/entry/20210131/1612068892より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14