0

送信時に、送信されたものと同じ値を持つテーブルの行数をカウントする必要がある単純なフォームがあります。

なぜこれがエラーを返すのか理解できません...何かアイデアはありますか?

エラーはWarning: mysql_num_rows() expects parameter 1 to be resource, boolean given in .../register.php on line 31

$con = mysql_connect("table","user","pass");
if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
mysql_select_db("db", $con);    

function check_input($value, $quoteIt)
  {
      // Stripslashes
      if (get_magic_quotes_gpc())
      {
          $value = stripslashes($value);
      }
      // Quote if not a number
      if (is_null($value) || $value=="") {
         $value = 'NULL';
      } else if (!is_numeric($value) && $quoteIt == 1) {
         $value = "'" . mysql_real_escape_string($value) . "'";
      }

      return $value;
  }

$useremail = check_input($_POST['useremail'], 1);
// Check to see if email address already exists in USERS table
$query="SELECT * FROM users WHERE email = $useremail";
$result = mysql_query($query);
echo $query;
echo mysql_num_rows($result); //THIS IS LINE 31
mysql_close();
4

4 に答える 4

1

これを使用してクエリエラーを確認できます。クエリエラーのため、このエラーのみが表示されます

$result = mysql_query($query) or die(mysql_error());
于 2012-07-04T11:32:22.893 に答える
0
<?php
$con = mysql_connect("table","user","pass");
if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
mysql_select_db("db", $con);    

function check_input($value, $quoteIt)
  {
      // Stripslashes
      if (get_magic_quotes_gpc())
      {
          $value = stripslashes($value);
      }
      // Quote if not a number
      if (is_null($value) || $value=="") {
         $value = 'NULL';
      } else if (!is_numeric($value) && $quoteIt == 1) {
         $value = "'" . mysql_real_escape_string($value) . "'";
      }

      return $value;
  }

$useremail = check_input($_POST['useremail'], 1);
// Check to see if email address already exists in USERS table
$query="SELECT COUNT(1) FROM users WHERE email = $useremail";
$result = mysql_query($query);
$array = mysql_fetch_array($result);
$whatYouWant = $array[0][0];
mysql_close();
?>

しかし、Leighは正しいです、mysql_*関数の代わりにPDOを好みます...

于 2012-07-04T11:31:13.537 に答える
-1

交換

$result = mysql_query($query);

$result = mysql_query($query, $con);

于 2012-07-04T11:30:36.500 に答える
-1

通常、これはクエリが間違っていることを意味します。フィールドのバッククォートを試してください。

"SELECT * FROM `users` WHERE `email` = '$useremail'"
于 2012-07-04T11:29:15.863 に答える