答えて
を表示しません
<?php
require 'database.php';
//get from url
if (isset($_GET['location'])) {
$location = $_GET['location'];
}
$sql = "SELECT * FROM bmen where location='$location'";
$result = mysqli_query($database,$sql) or die(mysqli_error());
$rws = mysqli_fetch_array($result);
while($rws = $result->fetch_array())
{
echo $rws['username'] . " " . $rws['phone'];
echo "<br />";
}
$database->close();
を残していますあなたのループに入る前に、結果セットから最初の行を読み、それを放棄してください。
<?php
require 'database.php';
//get from url
if (isset($_GET['location'])) {
$location = $_GET['location'];
}
$sql = "SELECT * FROM bmen where location='$location'";
$result = mysqli_query($database,$sql) or die(mysqli_error());
// delete this next line
//$rws = mysqli_fetch_array($result);
while($rws = $result->fetch_array())
{
echo $rws['username'] . " " . $rws['phone'];
echo "<br />";
}
$database->close();
あなたのスクリプトがSQL Injection Attack する危険性があるとしてもLittle Bobby Tablesに何が起こったのかを見てください if you are escaping inputs, its not safe! 使用prepared parameterized statements
あなたはパラメータ化し、バインドされたデータを外部から収集したデータを使用してクエリをコーディング試してみてください
<?php
require 'database.php';
//get from url
if (isset($_GET['location'])) {
$sql = "SELECT * FROM bmen where location=?";
$result = $database->prepare($sql);
$result->bind_param('s', $_GET['location']);
$result->execute();
// some error checking is also good
if (! $result) {
echo $result->error;
exit;
}
while($rws = $result->fetch_assoc())
{
echo $rws['username'] . " " . $rws['phone'] . "<br />";
}
}
ありがとうございます。 @ RiggsFolly。 – Kiwagi
これはmysqli_fetch_arrayを2回呼び出したためです。この理由から、最初の要素は常に除外されています。最初に削除します$ rws = mysqli_fetch_array($ result);。大丈夫だよ。
あなたがデータをフェッチするコードの中で<?php
require 'database.php';
//get from url
if (isset($_GET['location'])) {
$location = $_GET['location'];
}
$sql = "SELECT * FROM bmen where location='$location'";
$result = mysqli_query($database,$sql) or die(mysqli_error());
while($rws = $result->fetch_array())
{
echo $rws['username'] . " " . $rws['phone'];
echo "<br />";
}
$database->close();
ありがとう@reza – Kiwagi
2回
$rws = mysqli_fetch_array($result);
と第二ここで最初の1
while($rws = $result->fetch_array())
のコード行を削除するには、$rws = mysqli_fetch_array($result);
ありがとう@developersaumya私はそれを持っています – Kiwagi
- 1. Highchartsは選択の上、私が選択層を残したい、私はカスタム選択をしたい選択
- 2. レコードの選択
- 3. PL/SQLカーソル一意のレコードを選択し、フラットファイルで印刷
- 4. レコードを選択
- 5. SQL Server:選択したコンカチェットの1つを選択
- 6. SQL Serverの2014レコードを選択
- 7. 選択したレコード
- 8. エンティティフレームワーク4:単一レコードの選択
- 9. 選択のすべてのレコードを選択し
- 10. コントローラでランダムな単一レコードを選択
- 11. SQL文で選択されていないレコードを選択する方法は?
- 12. を選択し、SQL
- 13. YiiのレコードIDを選択
- 14. mysql sqlは各グループの最後のレコードを選択します
- 15. リストボックス複数選択は常にすべてを選択
- 16. SQL Serverで複数選択の代わりに単一選択を返す
- 17. SQLは最後の選択の結果に基づいてレコードを選択し続ける
- 18. SQLは前のレコードを選択します
- 19. 選択したレコードは、Railsの
- 20. アスタリスクIVRレコードの選択
- 21. Crystal Reportsのレコード選択式
- 22. 順次レコード数の選択
- 23. レコードのリストから選択
- 24. SQL内部結合と通常選択
- 25. UITableView - 複数選択と単一選択
- 26. SQLクエリの選択
- 27. SQLクエリの選択
- 28. SQLワイルドカードの選択
- 29. SQLワイルドカードの選択
- 30. Flask-Admin未選択のカスタムアクション
[Little Bobby](http://bobby-tables.com/)は*** [あなたのスクリプトはSQLインジェクション攻撃の危険にさらされていると言います。](http://stackoverflow.com/questions/60174/how-can- i-prevent-sql-injection-in-php)*** [MySQLi](http://php.net/manual)の[prepared](http://en.wikipedia.org/wiki/Prepared_statement)ステートメントについて学びます。 /en/mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! [それを信じていない?](http://stackoverflow.com/q/38297105/1011527) –