ホームページ  >  に質問  >  本文

プリペアドステートメントの型定義文字列を動的に生成する

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

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

リーリー

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

リーリー

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

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

P粉031492081P粉031492081233日前312

全員に返信(1)返信します

  • P粉702946921

    P粉7029469212024-02-04 14:16:53

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

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

    リーリー

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


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

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

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

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

    https://phpdelusions.net/pdo/

    返事
    0
  • キャンセル返事