ホームページ > バックエンド開発 > PHPチュートリアル > PHP_PHP チュートリアルでバッチ mysql ステートメントを実行するソリューション

PHP_PHP チュートリアルでバッチ mysql ステートメントを実行するソリューション

WBOY
リリース: 2016-07-21 15:11:24
オリジナル
874 人が閲覧しました

など、実行する必要がある mysql ステートメントが複数ある場合

$sqls= "テーブル a 値を挿入(1,2);"

実行する必要がある場合、PHP で使用できるメソッドが 3 つあります:

mysql_query

プド

mysqli

3つの方法はいずれもSQL文に問題がない場合に利用可能です。

でも

SQL ステートメントが間違っていると問題が発生します
最初の SQL エラー: 3 つのメソッドすべてが false を返します

最初の SQL は正しいですが、2 番目の SQL は間違っています。mysql_query、pdo、mysqli:query も true を返します。したがって、現時点では、SQL にそのステートメントにエラーがあるかどうかを判断することはできません。


この問題を解決するにはいくつかの方法があります:

1 SQL文を解析する
各SQLを分割して実行します。これにより、各ステートメントを個別に実行する問題が解決されます。ただし、この方法にはさらにいくつかの方法があるため、お勧めできません。

2 SQL ステートメントをテキストとして保存します。
cmd を使用してコマンド mysql… を実行し、出力をキャプチャします。これも方法ですが、問題を回避しているように感じます。もっと良い方法があるはずです。

3 mysqli::multi_query メソッドを使用します
このメソッドは複数の SQL ステートメントを実行し、mysqli::next_result を使用して SQL のオフセットを設定し、mysqli::error を使用して現在のオフセット SQL のエラーステータスを取得できます

以下は3番目のメソッドのサンプルコードです​​

コードは次のとおりです:

コードをコピーします コードは次のとおりです:

$sql = Config::get('sql');
$content = file_get_contents($sql); config = Config::get( 'config')
$mysqli = mysqli_connect($config['host'], $config['user'], $config['password'], $config['dbname']);
$ret = $mysqli- >multi_query($content);
if($ret === false) {
echo mysqli_error($mysqli);
}
while (mysqli_more_results($mysqli)) {
if (mysqli_next_result) ($mysqli) === false) {
「rn」 "; 単語、プログラム このエラーが表示されます。

これは、mysql を初期化するスクリプトを作成する場合に非常に便利です。





http://www.bkjia.com/PHPjc/326878.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/326878.html

技術記事 $sqls= "insert table avalues(1,2); insert table avalues(2,3);" のように、複数の mysql ステートメントを実行する必要がある場合、3 つの方法があります。 PHP で使用できます:.
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート