問題タブ [mysqli]
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 - mysqli->error: 最後のクエリのみですか、それともクエリ グループからの最後のエラーですか?
私はmysqliを初めて使用し、以下のような場合、errnoが最後のエラーに設定され、最後のクエリのエラーではないことを確認しようとしています。
これはまともな方法ですか、それともすべてのクエリ間のエラーをチェックする必要がありますか?
ありがとう!
php - MySQL で準備されたクエリは、セッションごとに 1 回のクエリのパフォーマンス上の利点を提供しますか?
ドキュメントによると、準備されたクエリは、クエリを解析する MySQL サーバーのオーバーヘッドが 1 回しか発生しないため、クエリを複数回実行している場合にパフォーマンスが大幅に向上します。そこでの「複数回」とは正確にはどういう意味なのか疑問に思っています。
つまり、クエリを 1 回実行する Web ページがあるとします。ここで、そのページが毎秒 50 回呼び出されるとします。パフォーマンスの観点から、クエリを prepare() する方が理にかなっていますか (したがって、DB サーバーへの 2 回のラウンドトリップが必要です。1 回はクエリの準備に、もう 1 回はクエリの実行に必要です)、またはクエリを通常どおりに送信するだけです (1 回のラウンドトリップのみが必要です)。 ? MySQL および/または PHP mysqli ドライバーは、以前の呼び出しでクエリがいつ prepare() されたかを認識するのに十分スマートですか?
php - mysqli 準備済みステートメントでの null の使用
mysqli のプリペアド ステートメントでは、NULL は '' (文字列の場合) または 0 (整数の場合) に変換されます。真のNULLとして保存したいと思います。これを行う方法はありますか?
php - MySQLi の準備済みステートメントと REPLACE INTO
次のコードが必要です:
http://www.nomorepasting.com/getpaste.php?pasteid=22987
PHPSESSID
まだテーブルにない場合、REPLACE INTO
クエリは正常に機能しますが、PHPSESSID
存在する場合、実行の呼び出しは成功しますが、sqlstate は「HY000」に設定されます。これはあまり役に立たず$_mysqli_session_write->errno
、
$_mysqli_session_write->error
両方とも空であり、データ列は更新されません。
テーブルにREPLACE INTO
あるかどうかに関係なく、mysql から手動で実行すると問題なく動作するため、スクリプトのどこかに問題があることは確かです。PHPSESSID
php - PHP関数でMySQL接続が機能することを確認する
次の形式のコードがあります。
doSomething() にはデータベースへの接続がないため、この (タイプの) コードは機能しません。誰も理由を説明できますか?doSomething() を呼び出す前に、$con 接続を作成します。では、なぜ関数は接続がないかのように動作するのでしょうか?
doSomething($con) のような関数に接続を渡す以外に、これを修正する方法はありますか?
php - MySQL クエリを偶数の結果に制限する
MySQL データベースから偶数の結果を返す必要がある PHP コードが少しあります。mysqli 拡張機能を使用してクエリを実行しています。
私のコードは、現時点ではおおよそ次のとおりです。
ご覧のとおり、クエリを 6 行に制限していますが、条件によってはそれよりも少ない行が返されます。3 行しか返されない場合は、最後の行を破棄して 2 行だけを保持したいと考えています。
MySQLクエリまたはMySQLiでこれを行うにはどうすればよいですか?
php - ブール値のバインドに関する bind_param の問題
mysqli_stmt::bind_param
PHP5 で使用するブール値のバインドに問題があります。
SQL クエリは次のとおりです。
ここで、'read' は 0 または 1 の tinyint です。したがって、bind_param にリストするタイプは次のとおりです。
「sdsb」と「sdss」も試しましたが、何も機能していないようで、常に次のメッセージが表示されます。
警告: mysqli_stmt::bind_param(): 変数の数が、準備されたステートメントのパラメーターの数と一致しません
ステートメントの読み取りフィールドを削除すると、すべて正常に機能します。私はこれでアイデアを使い果たしました。確かにbind_paramはブール値で動作しますか?
php - mysqli::real_escape_string の対応物?
ストリップスラッシュ() ? それは不自由なので 4.0 です。SQL クエリに追加されたすべてのスラッシュを削除する mysqli::real_escape_string の 5.0 版は何ですか?
他にもいくつか質問があります:
レコードを更新しようとしてテキスト フィールドに一重引用符を追加すると、phpMyAdmin がスラッシュの代わりに一重引用符で文字列をエスケープすることが判明しました - たとえば、一重引用符は \' ではなく '' (2 つの一重引用符) としてエスケープされますphpMyAdminを使用していますか、それとも独自のものですか? では、mysql は文字列をエスケープするための 2 つのアプローチ、つまりスラッシュと単一引用符をサポートしていますか?
mysql から選択した文字列のスラッシュを常に外す必要がありますか? 原因は、挿入時に切り落とされていることを知っているからです。でも、その必要はないと思いました。
任意のアイデア、ありがとう!
php - mysql から mysqli への変換 - 変数の出力
PHP で mysql api を使用してきましたが、現在はセキュリティを強化するために mysqli に変換しています。私が見た構文例では printf を使用していますが、これが必要かどうかを知りたいです。現時点では、次のようにエコーを使用しています。
mysqli では変数を結果にバインドする必要があるため、次のようにしました。
$row への参照をバインドされた変数に単純に置き換えることができるかどうかを知りたいです。次に例を示します。
このアプローチにはセキュリティ上の問題がありますか、それとも問題ありませんか
php - 空白のページを表示するphp、エラーなし
AJAX アプリケーションの次の部分がありますが、エラーは発生しませんが、画面には何も表示されないため、問題がどこにあるのかわかりません。?cmd&id=1 を使用してブラウザーからこのページを直接呼び出すと、戻ります。または、?cmd なしで呼び出しても、cmd エラー メッセージが返されます。
編集: テスト ケースの追加: cmd エラー メッセージが表示されますが、&id=1 (1 は有効な ID) を渡すと、html がまったく返されず、ソースが完全に空白になります。echo を間違って使用したか、または同様のものを使用しましたか?
edit2: 最初の行としてエコーを追加しました: 最初のエコーはまったく表示されません
edit3: 古いバージョンに戻ってすべての変更を再度行った後、有効な cmd および id パラメータで呼び出すと、テスト文字セットの出力が得られるようになりました。私が使用しているコードは、以下に貼り付けたものと同じです。
コード:
間隔が空いて申し訳ありませんが、コード ボタンを押すと自動的に発生します。