0

エラーが発生しています

警告: mysqli_query() は、パラメーター 2 が文字列であると想定します。オブジェクトは、10 行目の C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\login.php で指定されます エラー:

クエリの実行時

<?php
$con=mysqli_connect("127.0.0.1","root","","forms");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
  
  $sql=mysqli_query($con,"SELECT * FROM register Where username='$_POST[username]' AND password='$_POST[password]'");
  
  if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "login success";

mysqli_close($con);
?>
4

5 に答える 5

2

if(!mysqli_query($con,$sql))$sql文字列ではなくオブジェクトであるため、良くありません

$sqlはオブジェクトですmysql_query

失敗すると FALSE を返します。SELECT、SHOW、DESCRIBE、または EXPLAIN クエリが成功した場合、mysqli_query() は mysqli_result オブジェクトを返します。その他の成功したクエリの場合、mysqli_query() は TRUE を返します。

したがって、別のことをする必要はありません。次の方法でmysqli_query変更するだけですif

if(!$sql)
{
  //do something
}

これは、クエリの失敗を確認する必要がある場合に機能します。そうしないとmysqli_result、クエリが 0 行を返したとしても が返される可能性があるため、注意してください。

于 2013-06-06T07:08:06.250 に答える
0

交換 :

if (!mysqli_query($con,$sql))

if($sql === FALSE)

FALSE をチェック$sqlして、クエリが失敗したかどうかを証明します。

参照: mysqli_query()

于 2013-06-06T07:10:03.830 に答える
0

試す

  <?php
      $con=mysqli_connect("127.0.0.1","root","","forms");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

  $sql="SELECT * FROM register Where username='$_POST[username]' AND password='$_POST[password]'";

  if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo "login success";

mysqli_close($con);
?>

クエリを実行できるため、文字列である必要があります。しかし、あなたのコードでは

$sql=mysqli_query()

オブジェクトを $sql に返します

于 2013-06-06T07:10:21.487 に答える
-1

このコードを試してください:

  $sql="SELECT * FROM register Where username='".$_POST[username]."' AND password='."$_POST[password]."'";

  if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }

あなたのコードでは、すでに mysqli_query を使用しており、そのオブジェクトを mysqli_query で再度渡しています。

于 2013-06-06T07:11:08.353 に答える