複数の SQL ステートメントを実行すると PHP エラーが発生する
複数の SQL ステートメントを実行するステートメントは、ローカルおよびコマンド ラインで通常どおり実行できますが、サーバー上に配置された後はエラーが報告されます。 thinkphpを使用しましたが、ローカルコードとサーバーコードは同じです
PHPまたはmysqlの設定に問題があると推測しましたが、見つかりませんでした。
SQL ステートメントの長さを増やします (a をいくつか入力します)。エラー内容は同じになります。単一の SQL ステートメントの実行は、その長さに関係なく正常に実行できます。
$sql="INSERT INTO gongzhonghao.response (receive,response) VALUES ('aaaaaaaaaaaaaa','aa');私は
NSERT INTO gongzhonghao.response (receive,response) VALUES ('bb','bb');
INSERT INTO gongzhonghao.response (receive,response) VALUES ('cc','cc');"
M()->execute($sql);
エラーレポート:
コマンドライン:
ディスカッションへの返信(解決策)
pdoで再度試してみたところ、正常に実行できました。 thinkphpに問題があるようです。ただし、ローカル コードとサーバー コードは、アップロードされたばかりの TP のコア コードを含め、まったく同じです。誰か助けていただけますか。
use は一度に 1 つの SQL ステートメントのみを実行できます
SQL 攻撃を防ぐため、PHP のデータベース クエリ関数では一度に複数の命令を実行することはできません
これは完全にセキュリティ上の理由からです。例外として、mysqli_multi_query は実行できます。複数の命令が実行されます
PDO は OK だと言いましたが、私はテストしていないのでコメントしません
複数の挿入命令は次のように記述できます
$sql="INSERT INTO gongzhonghao.response (receive,response) VALUES ('aaaaaaaaaaaa' ,'aa'),('bb','bb'),('cc','cc');"
上記の 3 つの文を $sql="INSERT INTO gongzhonghao.response (受信) に統合します,response ) VALUES ('aaaaaaaaaaaaaa','aa'),('bb','bb'),('cc','cc');"
SQL 攻撃を防ぐために、PHP のデータベース クエリ関数では、複数の命令を一度に実行する
これは完全に安全のためです。例外として、mysqli_multi_query は複数の命令を実行できます
PDO は大丈夫だと言いましたが、私はテストしていないのでコメントしません
複数の挿入命令は、このように書かれました
$sql="INSERT INTO gongzhonghao.response (receive,response) VALUES ('aaaaaaaaaaaaaa','aa'),('bb','bb'),('cc','cc'); "
上記の 3 つの文を $sql="INSERT INTO gongzhonghao.response (receive,response) VALUES ('aaaaaaaaaaaaaa','aa'),('bb','bb'),('cc' に統合します,'cc');"
元のビジネス設計では、挿入、削除、更新など、複数の異なる SQL ステートメントを一度に実行する必要がありました。上記の例では、挿入のみが使用されました。もちろん別々に実行することも可能ですが、効率は上げたいけどセキュリティ上の問題が発生するなら忘れてください。
複数の命令を同時に実行できる場合、
select * from tbl_name where id=$id
select * from tbl_name where id= 1; delete from tbl_name
If $i = '1; が改ざんされる可能性があります。 delete form tbl_name';
もちろん、渡されるパラメータを厳密に制御できるのであれば、一度に複数の命令を実行することは悪い考えではありません
mysqli_multi_query はこの要件に合わせて特別に設計されています
php5.5 以降、mysql拡張機能は非推奨のリストに含まれているため、mysqli 拡張機能を使用することが最良の選択です

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。
