プリペアドステートメントの型定義文字列を動的に生成する
P粉031492081
P粉031492081 2024-02-03 21:09:39
0
1
391

私は基本的に API からローカル MySQL データベースにデータをロードするスクリプトを作成しています。これらの値は、API が返す内容に基づいて変化します。

実際に MySQL データベースに行を挿入してみるまでは、これまでのところすべてが正常に動作しています。具体的には、準備されたステートメントを使用する必要があることはわかっていますが、変数を準備されたステートメントにバインドしようとすると問題が発生します。次のコードを実行しようとすると、次のメッセージが表示されます:

リーリー

これは問題のコードです:

リーリー

私はこの点に関しては少し初心者であることを率直に認めます。そのため、より良い方法についてのあらゆる提案を歓迎します。実際のところ、ユーザーが直接入力することは決してないので、この問題を解決する最善の方法に何らかの影響があるとしても、私はセキュリティの問題については比較的無関心です。

###前もって感謝します!

P粉031492081
P粉031492081

全員に返信(1)
P粉702946921

bind_param() は、実際には配列パラメータではなく変数パラメータを受け入れます。しかし、最新の PHP には、配列を複数のスカラー パラメーターに変換するための構文があります。 リーリー

これは、配列要素を別の引数として渡すことと同じです:

リーリー

しかし、配列内にいくつの要素があるのか​​が分からないと恥ずかしいです。


参考までに、私は mysqli の代わりに PDO を使用することを好みます。何もバインドする必要はなく、値の配列をパラメーターとして

execute(): に渡すだけです。 リーリー

PDO の方が簡単だと思います。 mysqli を使用する理由は、調整が必要な 2000 年代半ばのレガシー コードが大量にある場合です。始めたばかりの場合、レガシー コードはありません。したがって、最初に PDO を採用するのもよいでしょう。

優れた PDO チュートリアルがあります:

https://phpdelusions.net/pdo/

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート