PHP 関数化するときの注意
<?php
function test(){
$a = 10;
// ①return を使って、呼び出し元に値を返す!
return $a; // ②$aは関数内しか有効じゃない。
}
//③変数に関数をいれると、関数で実行された返り値が変数に格納される。
$a = test();
echo $a;
?>
DB接続処理を関数化する時は
<?php
function db_open():PDO{ //PDO型を指定
$user ="phpuser";
$password = ""xxxxx;
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::MYSQL_ATTR_MULTI_STATEMENTS =>false,
];
$dbh = new PDO('mysql:host=localhost;dbname=sample_db;charset=utf8;',$user,$password,$opt);
return $dbh;//返り値を返す
}
var_dump($dbh);//object(PDO)#1 (0) { }PDOオブジェクトが返ってくる
?>
//使う時
<?php
require_once 'functions.php';//読込
try {
$dbh = db_open();//変数に関数をいれる。
$sql = 'SELECT title, author FROM books';
$statement = $dbh->query($sql);
while ($row = $statement->fetch()) {
echo " 書籍名:" . str2html($row[0]) . "<br>";
echo " 著者名:" . str2html($row[1]) . "<br><br>";
};
} catch (PDOException $e) {
echo " エラー!: " . str2html($e->getMessage()) . "<br>";
exit;
}
この記事が気に入ったらサポートをしてみませんか?