• HOME
  • WordPress
  • WordPressに格納されている情報からデータベースへアクセス。

WordPressに格納されている情報からデータベースへアクセス。

/*
データベースにアクセス
*/

function db_access($sql){
global $wpdb;
define('DB_HOST', $wpdb->dbhost);
define('DB_NAME', $wpdb->dbname);
define('DB_USER', $wpdb->dbuser);
define('DB_PASSWORD', $wpdb->dbpassword);
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8mb4'");
error_reporting(E_ALL & ~E_NOTICE);
try {
	 $dbh = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD, $options);
	 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	
} catch (PDOException $e) {
	 echo $e->getMessage();
	 exit;
}
$stmt = $dbh->query($sql);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $result;
unset($dbh);
}
$sql = 'SELECT * FROM table_name WHERE page_id = '.$post_id;
$stmt = db_access($sql);

こんな感じ。
db_access(sql)でやっている。
いまのところセレクトしか想定していない。
こういうのはクラス?を使った方がいいのかなぁ。
その辺りも調べておこう。
こういった場合のsql文もsprintfを使った方がいいのだろうか?