2015年09月05日(Sat)
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の実行結果や該当数を取得に対するご意見、ご感想、情報提供など皆様からのコメントをお待ちしております。 お気軽にコメントしてください。
コメントフォーム