• このエントリーをはてなブックマークに追加

2015年09月05日(Sat)

mysqli_info()を使用してUPDATEの実行結果や該当数を取得

mysqli_info()を使用してUPDATEの実行結果や該当数を取得

PHPからMySQLをUPDATEするときにmysqli_query()で実行結果が分からないんですね…
今まで気づかなかったです…という事で実行結果などが分かる自作関数を作ってみました。

悪い例(結果が分からないパターン)

if(mysqli_query($mysqli, 'UPDATEのクエリ文')){ echo '更新成功'; }else{ echo '更新失敗'; }

mysqli_info()

メインとなる関数は、mysqli_info()です。
使用すると直近のクエリについての詳細な情報を返してくれます。

mysqli_info()の使用例

mysqli_query($mysqli, 'UPDATEのクエリ文');
echo mysql_info($mysqli);

実行結果

Rows matched: 1 Changed: 1 Warnings: 0

実行結果を簡単に説明すると下記のような感じです。
matched … マッチした行数
Changed … 更新した行数
Warnings … エラー行数

mysqli_info()を使った自作関数

欲しい情報をだけを取得するために関数を作りました。
関数と使い方は下記の通りです。

_mysqli_info()

//Updateの実行結果
function _mysqli_info($mysqli){
	$str = mysqli_info($mysqli);
	$res['matched'] = preg_replace("/^.*matched: ([0-9]*?) .*?$/i", "$1", $str);
	$res['changed'] = preg_replace("/^.*changed: ([0-9]*?) .*?$/i", "$1", $str);
	$res['warnings'] = preg_replace("/^.*warnings: ([0-9]*?)$/i", "$1", $str);
	return $res;
}

使用例

//クエリ実行
mysqli_query($mysqli, 'UPDATEのクエリ文');
//実行結果の取得
$result = _mysqli_info($mysqli);
//結果別の処理
if($result["changed"]){ echo '更新成功' }else{ '更新失敗'; }

【参考Webサイト】

コメント(0件)

mysqli_info()を使用してUPDATEの実行結果や該当数を取得に対するご意見、ご感想、情報提供など皆様からのコメントをお待ちしております。 お気軽にコメントしてください。

コメントフォーム

【ソーシャルボタン】


TOP