ページを選択

ストブロ

Coffee's Blog.

PHP7.1対応の為、やむなくmysqliへ移行する。

執筆者 | 2017年10月24日 | さくらのレンタルサーバー, ストブロ

ご無沙汰しています、コヒ蔵です。
ちょっと間が空いてしまいましたが、久しぶりの投稿がこれまでと同じような内容という進歩のなさ(笑)

サーバーのPHPのバージョンを5.6(?)から7.1へ変更したところ「mysql」のサポートが終了となりphpからデータベースの情報を取得できなくなってしましました。
何をしていたかというと、当ウェブサイトのトップページ(静的ページですけどindex.php)でwordpressの記事情報を取得、表示する為に直接データベースにアクセスしているのです。

因みに、何でワザワザ小難しい事をやるかと言うと理由があります。

この方法で出来る事
1)複数のwordpressから情報を取得して表示できる。
  例:運用している2つのワードプレスからそれぞれ最新記事を取得し表示。
  あちこち記事を探しましたが、2つのWordpressから情報が読める方法は1記事しか探せませんでした。

2)「wp-load.php」を読み込む必要が無い。
  実はこれが1つのWordpressしか扱えなくなる理由だと思うのですが、外部からWordpressの機能を使用する場合に必要なwp-load.phpを読み込む必要はありません。

この方法で取り出せる情報
1)記事タイトル
2)記事のURL
3)投稿日
4)カテゴリ(複数カテゴリ対応)
取り出そうと思えば原則何でも取り出せるのですが、私が書いている範囲ないはこんな所。

この方法でやっている事
PHPでmysqliを使ってデータベースにアクセスしているだけです。

コードの全容

<?php
/* PHPでデータベースに接続 */

$dbhost = 'ホスト名(例:mysql000.db.sakura.ne.jp)';
$dbuser = 'ユーザー名(例:gonbe)';
$dbpass = 'パスワード(例:password)';
$dbname = 'データベース名(例:inst-db)';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
mysqli_set_charset($conn, "utf8");

if(! $conn ) {
die('Could not connect: ' . mysqli_error());
}

/* MySQL構文で記事データを指定 */

$sql = '
SELECT ID, post_date, post_title, guid, post_content
FROM 接頭辞posts
WHERE post_status = "publish"
AND post_type = "post"
ORDER BY post_date DESC
LIMIT 5';
$result = mysqli_query($conn, $sql);
?>

<ul class="wp-post">

<?php while ($item = mysqli_fetch_assoc($result)){

/* 基本情報(タイトル、URL、コンテンツ) */
$pid = $item["ID"];
$title = $item["post_title"];
$link = $item["guid"];
$content = $item["post_content"];
$date = $item["post_date"];
$datefix = substr( $date, 0, 10 );

/* カテゴリー情報も取得したい場合 */
$sql_cate = '
SELECT name
FROM 接頭辞term_relationships
INNER JOIN 接頭辞term_taxonomy ON 接頭辞term_relationships.term_taxonomy_id = 接頭辞term_taxonomy.term_taxonomy_id
INNER JOIN 接頭辞terms ON 接頭辞term_taxonomy.term_id = 接頭辞terms.term_id
WHERE 接頭辞term_relationships.object_id = '. $pid . '
AND 接頭辞term_taxonomy.taxonomy = "category"
';

$cate_res = mysqli_query($conn, $sql_cate);
$cate_gories = array();
while ($cate_row = mysqli_fetch_assoc($cate_res)){
$cate_gories[] = $cate_row["name"];
};
$cate_gories = implode(",", $cate_gories);
?>

<!– HTMLにてPHP変数を表示 –>
<li>
<a class="clearFix" href="<?php echo $link;?>">
<?php echo $title; ?>
<span> – <?php echo $datefix;?></span>
<span> <?php echo $cate_gories;?></span>
</a>
</li>

<?php
};
?>
</ul>
<?php
/* PHPでデータベースから切断 */
mysqli_close($conn);
?>

ちょっと途中表示がおかしいと思いますが、これが呼び出しようPHPの全容です。
「mysqli 手続き型」という手法で書いてあります。
他に「mysqli オブジェクト型」と「PDO」というデータベースへのアクセス方法がありますが、mysqlからの移行難易度が最も低いmysqli手続き型に落ち着きました。

因みにさくらのレンタルサーバーではmysqliとpdoのどちらも対応しています。

細かい部分を別の記事にて解説していきます。

久しぶりに出勤

おはようございます。 皆様ご機嫌如何ですか? 桂 コヒ蔵です。 被災地のみなさんには心よりお見舞い申し上げます。 一日でも早く暖かく安心できる春が来る事をお祈りしております。 震災後、会社が休業となりその後初出勤です。...

震災後初めて迎える月曜日。

おはようございます。 今日は震災後初めて迎える月曜日です。 各方面、かなりの混乱が発生する可能性があります。 みなさん、どうかいつも以上に気をつけて行動してください。 被災地のみなさん、安否確認や連絡がとれないみなさん。...

こそっ

|`・ω・´)? | ) ミ  さっ

あ、間に合ったw

昨日からの雪で交通状態は最悪。 ってことで、会社に来る時間もぎりぎりになりました。...

iPhone4用スタンド&Dockケーブル

いまさらですが、 昨日iPhone4用のスタンドとDockケーブルを購入しました。 ポイントなのは「バンパー」との併用です! バンパーが大好きって訳ではないのですが、私にとっては現状最も使いやすいケースなのです。 ただ、問題なのがスリムコネクター。...

ひき始めの攻防

日曜日の朝からなんとなく喉が痛いと思っていたのですが、 どうやら風邪のひき始めの様子。 ここで風邪をひいてはなるまいと、早めの葛根湯攻撃! 「風邪VS私」 で激しい攻防戦が続いております(`・ω・´) 2年に一度位3月に大きな風邪を引きまして、...

一年前は?:電器屋新CM

一年前は何をしていたか? とブログを振り返ると、2010年の3月は既にほぼ毎日更新をスタートしていました。 2010年3月7日は日曜日、なので本来ストブロはお休みでしたが、 この日は書き込みがありましたね。...

たった一言でも・・・

たった一言でも、 ストブロを更新し続ける為に、 自分のペースを守る為に、 自分のルールを守る為に、 たった一言でも、 ブログへ投稿するべきなのだろうか? 「おはよ」だけでも、 かきこむべきなのだろうか? それは読んでくれている人を裏切る行為なのか?...

冬が戻ってきました(>_

今朝は冷え込みましたね! こちらでは、また雪が降っちゃいました。 もう三月だけど、春は遠いなぁって感じです。 出勤に時間が掛かってしまった為・・・ 本日はこれにて!ww...

ミニチュアの日

3月2日は「ミニチュア」の日なんだそうです。 3(み) 2(に) の語呂合わせでしょうね。 ・・・ん? だとすると、ミニが付くものなら何でも来いかな? ミニスカートの日 ミニ肉まんの日 ミニミニピザの日 ミニダンボーの日 ミニーマウスの日 ミニ四駆の日...

終わっちゃいますよ!

2月が終わっちゃいますよ!? あっという間に! え、今日28日? 2月最終日じゃないですかΣ( ̄。 ̄ノ)ノ 早かったですねぇ。 もう、今日は2月の余韻に浸って一杯飲みたいと思いますw...

久しぶりの雨

みなさん、雨はお好きですか? 私はINST内では無双の雨好きなのですが、「雨が好き!」っていうと だいたい理解してくれませんw 今朝は私の町では久しぶりのまとまった雨が降っています。 今日は午後まで降り続く予報です。...

0コメント


電器屋Walkerの過去配信のBGMで利用させて頂いております。

ポッドキャスト品質向上、整音テクニック 解説Live

開催のお知らせ

詳細はこちら

国際ポッドキャストの日

International Podcast Day Event

ツキイチ - 隣のポッドキャスト

まとめファンサイト