MySQLi - 接続・抽出・登録・更新・削除 -
接続(mysqli_connect)
MySQL サーバーへの接続をオープンする
公式サイト:https://www.php.net/manual/ja/mysqli.construct.php
mysqli_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null
): mysqli|false
外部ファイルにして読み込む場合
[db_connect.php]
<?php
$host = 'local';
$user = 'user_name';
$password = 'user_pass';
$dbname = 'db_name';
?>
[index.php]
include_once("./db_connect.php");
$db_link = mysqli_connect($host, $user, $password, $dbname);
エラー処理
直近の接続コールに関するエラーコードを返す
公式サイト:https://www.php.net/manual/ja/mysqli.connect-errno.php
mysqli_connect_errno(): int
if(!$db_link){
echo mysqli_connect_errno($db_link) . ' : ' . mysqli_connect_error($db_link);
}
エンコード
クライアントの文字セットを設定する
公式サイト:https://www.php.net/manual/ja/mysqli.set-charset.php
mysqli_set_charset(mysqli $mysql, string $charset): bool
mysqli_set_charset($db_link, 'utf8');
抽出(select)
$query = "select * from テーブル";
$result = mysqli_query($db_link, $query) or die ("データ抽出エラー");
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo {$row['name']};
}
抽出 idの昇順
//id を昇順で
$query = "select * from テーブル order by id";
$result = mysqli_query($db_link, $query) or die ("データ抽出エラー");
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo {$row['name']};
}
抽出 降順(DESC)
//id を降順で
$query = "select * from テーブル order by id DESC";
$result = mysqli_query($db_link, $query) or die ("データ抽出エラー");
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo {$row['name']};
}
抽出 件数指定(limit)
//id を昇順で5件
$query = "select * from テーブル order by id limit 5";
$result = mysqli_query($db_link, $query) or die ("データ抽出エラー");
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
echo {$row['name']};
}
登録(insert)
疑問符プレースホルダ
オブジェクト指向型
$db_link = new mysqli($host, $user, $password, $dbname);
$sql = "INSERT INTO テーブル (id,name) VALUES (?, ?)";
$stmt = $db_link->prepare($sql);
$stmt->bind_param('ss', $id,$name);
$stmt->execute();
手続き型
$db_link = mysqli_connect($host, $user, $password, $dbname);
$query = "INSERT INTO テーブル (id,name) VALUES (?,?)";
$stmt = mysqli_prepare($db_link,$query);
mysqli_stmt_bind_param($stmt,'ss', $id,$name);
mysqli_stmt_execute($stmt);
更新(update)
$query = "update テーブル set id = '$id',name = '$name',where id = '$get_id'";
$result = mysqli_query($db_link,$query);
削除(delete)
$query = "delete from テーブル where id='$id'";
$result = mysqli_query($db_link,$query);
結果セットを開放
結果に関連付けられたメモリを開放
公式サイト:https://www.php.net/manual/ja/mysqli-result.free.php
mysqli_free_result(mysqli_result $result): void
mysqli_free_result($result);
接続を閉じる(mysqli_close)
事前にオープンしているデータベース接続を閉じる
公式サイト:https://www.php.net/manual/ja/mysqli.close.php
mysqli_close(mysqli $mysql): true
mysqli_close($db_link);
最終更新日:2023/07/20