LoginSignup
2
4

More than 5 years have passed since last update.

PHP * mysqli チートシート

Posted at

自分用のチートシート(基本)

よくある定番の流れ


<?php
//エラーと警告を表示する設定
ini_set( 'display_errors', 1 );
ini_set( 'error_reporting', E_ALL );

//DBへ接続
$db = new mysqli('DBのアドレスまたはlocalhost', 'ユーザ名', 'パスワード', '使うDB名');

if( mysqli_connect_errno($db) ) {  //接続失敗
    mysqli_close($db);
}
else{  //接続成功
    //入力したいSQL文の作成
    $sql = 'select * from article'

    //SQL文を実行
    $res = $db->query($sql);

    //結果のすべての行を連想配列・数値添字配列で取得
    $row = $res->fetch_all();

    //欲しい情報を上手に取り出すために配列を表示させて確認
    //echo var_dump($row);

    $title1 = $row[0][0];
    $year1  = $row[0][1];

    $title2 = $row[1][0];
    $year2  = $row[1][1];

    //リソースの開放
    $sql->free();
    $res->free();
    $row->free();
    mysqli_close($db);
}
?>

fetch_all()で取り出した情報の見方

//SQL文に対する結果の例

+-----------------------+
| tag_name              |
+-----------------------+
| 音楽                  |
| 食事                  |
| 日常                  |
+-----------------------+

//これを$res->fetch_all()で取り出して
//var_dump()で見ると次のように表示される
//(インデントは僕がつけました)

array(3) { 
    [0]=> array(1) { [0]=> string(6) "音楽" } 
    [1]=> array(1) { [0]=> string(6) "食事" } 
    [2]=> array(1) { [0]=> string(6) "日常" } 
}

//二重の配列になっているとわかる
//この3つを取り出すのは次の通り

$tag1 = $res->fetch_all()[0][0]; //音楽
$tag2 = $res->fetch_all()[1][0]; //食事
$tag3 = $res->fetch_all()[2][0]; //日常

コメント

正直僕は初心者なので、変なとことかあるかも。。。
連想行列好きじゃないから添字行列だけで取れれば良いんだけど、
どうやるか分かんないです誰か教えてください。

この処理を表示用のページに書くのはナンセンスなので、関数化して別のファイルに分けるのが妥当だと思う。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4