問題タブ [bindparam]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - PHP in 節が準備済みステートメントで機能しない
「IN」句を含む準備済みステートメントを使用して mysql クエリを作成しようとしています。これは声明です:
ただし、準備されたステートメントが間違っている場合に発生する「メンバー関数 bind_param() への呼び出し...」というエラーが常に発生します。
基本的に、別のテーブルにもそれらの URL を持っている 1 人のユーザーからすべての URL を見つけようとしています。「person_url」と呼ばれるこの別のテーブルには、すべてのエントリにも「person」があります。ステートメントでわかるように、特別な「人」が含まれているものだけが欲しいです。
これを行う他の方法があるかどうか、またはエラーがどこにあるかを誰かが教えてくれるでしょうか?
EDIT 1: userid は文字列です。名前は誤解を招く可能性があります。
編集 2: 両方のテーブルのステートメントを作成します。
編集 3: 完全なエラー
致命的なエラー: 163行目のC:\xampp\htdocs\monitorUser\websiteBuilder.phpの非オブジェクトに対するメンバー関数 bind_param() の呼び出し
編集 4: 最高のトンネル ビジョン。people_url の代わりに person_url をステートメントに書きました。みんなありがとう。
php - mysql 関数を使用した PHP bindParam
bind_param
mysql 組み込み関数で使用できる場所で、PHP の OOP を使用することは可能ですか?
次のエラーが発生する次のコードがあります。
コードは次のとおりです。
エラーから私が理解している限り、PHPはFROM_UNIXTIME()メソッドを提供していません。したがって、私の問題はbind_param
、クエリからの文字列を何らかの種類のコードにコンパイルし、それをmysql dbに送信することです。クエリで文字列として送信できる場合と同様にFROM_UNIXTIME
、mysql はそのメソッドを理解し、それに応じて動作します。
とにかく、どうすればそのようなクエリを実行できますbind_param
か? 日時をタイムスタンプに変換して出力をクエリに入れようとしましたが、mysql はテーブルにゼロしか表示しません。
php - パラメータをmysqliクエリにバインドする方法
私は今、かなり単純なはずの何かで1時間以上苦労しています。mysqli データベースから行を取得したいのですが、phpmyadmin からクエリを実行すると期待どおりの結果が得られますがwith bind_param
、php コードから () 実行すると 0 の結果が得られます。
php - PHP PDO ステートメントが機能しない
PDO ステートメントに問題があります。エラーを監視しているアクティブなパイプtail -f /var/log/apache2/error.log
があり、何も入っていmysql.log
ません。ファイルにエラーもありませんでした。
- i の場合
echo $_POST['sfl']
、整数を出力します ie.(4) :sfl
paramを通常の整数に変更すると、つまり."SELECT * FROM station WHERE SFL = '4'"
クエリを実行してデータを正常にプルします。
わかりやすくするために、コードからエラー チェックを削除しました
質問:$_POST['sfl']
PHP が変数をステートメントにバインドしないのはなぜですか?
php - MYSQLi クエリを単純化して動的にするための優れたソリューションは?
MYSQLi 呼び出しで使用される変数の数を動的に変更する方法を探していました。5 年前に PHP.net で非常に役立つ投稿を見つけました ( http://php.net/manual/en/mysqli-stmt.bind-param.php#100879 )。しかし、私は物事に少し夢中になり、彼の仕事の私の適応がまだ安全/効率的/エラーでいっぱいかどうかを知るのに助けが必要です。
アイデアは次の 5 点です。
- 必要な数の変数を動的に簡単に使用できるようにする。
- 古い MYSQL と同じくらい簡単にクエリを作成できるようにするため (MYSQLi プリペアド ステートメントの最新性とセキュリティを利用しながら)。
- 手動でクラスを追加する必要をなくし、代わりに PHP に処理させます。
- 戻り値を期待するクエリ (SELECT および EXPLAIN) とそうでないクエリ (INSERT、DELETE、および UPDATE) を自動的に区別するため。
- 1 つの変数を変更することにより、個々の行またはページ全体を簡単にデバッグする方法を提供します。
これらはすべて、次のようなもので達成されることを願っています。
doMYSQL('INSERT INTO table(id, name) VALUES ($id,$name)');
必要に応じて、以下の関数では、クエリ (古い MYSQL のようにインライン変数を使用) が一重引用符で囲まれていることに注意してください。変数は、その値ではなく、実際の変数名として解析されます。値は、MYSQLi の準備済みステートメントを準備する段階で 1 回だけ行われます (したがって、私が知る限り、差し止め攻撃に対する同じセキュリティがあるはずです)。
さて、公式ノート。これを改善する方法について、またはどこかに明らかなエラーがある場合は、フィードバックをお待ちしております。最後のメモの下にあるすべてのコード (「その他のコード」) は、PHP.net の投稿からのものであり、そのほとんどが理解できないため、それに関するコメントも役に立ちます。もしこの関数が基準をクリアできれば、私の人生は確実に楽になるでしょう。
明確にするために、これは私が試みたすべてのテストで機能したので、何か問題があると考える理由はありません. 私は、危険信号があるかどうかを知るのに十分な経験がないことを知っているだけです。したがって、私は皆さんに敬意を表し、機能の安全性を検証するための支援を求めます.
php - パラメータを mysqli ステートメントに動的にバインドする
動的な準備済みステートメントを作成しようとしていますが、そのbind_param
部分で立ち往生しています。を参照して他の回答を読み込もうとしましcall_user_func_array
たが、ここでそれを適応させる方法がわかりませんでした:
この状況から抜け出す方法はありますか。このアプローチを使用するのは初めてで、それが正しいかどうかわかりません。どうもありがとうございました。