0

これはうまくいくはずだと思いますが、そうではありません...

基本的に、mysql db をチェックして、2 つの変数を満たすレコードがあるかどうかを確認しようとしています。この時点では、結果は常に no です。

$result = mysql_query("SELECT 'lastname' FROM 'Cust_Releases' WHERE 'lastname' = '$usercheck' AND          'TripID'= '$RLtripid'");
echo $result;
if(mysql_num_rows($result) == 0) {
 echo"no";// row not found, do stuff...
} 
else {
 echo"yes"; // do other stuff...
  }
4

4 に答える 4

1
$result = mysql_query("SELECT lastname FROM `Releases` WHERE lastname = '$usercheck' AND TripID= '$RLtripid' LIMIT 1");
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
echo $result;
if(mysql_num_rows($result) == 0) {
 echo"no";// row not found, do stuff...
} 
else {
 echo"yes"; // do other stuff...
  }
  • Bondyeが提案したように、「リリース」をエスケープする
  • クエリに「LIMIT 1」を追加して、一致するレコードが複数ある場合に早期終了の可能性を許可します。合計数は必要ないようです。1 つの行のみを返すことが保証されている一意の制約が存在する場合、違いはない可能性があります。
  • mysql_query は非推奨です。実際のコードでは、PDO と準備済みステートメント/バインド変数を使用する必要があります。
于 2013-01-16T16:20:24.707 に答える
1

まず、mysql_* 関数の使用をやめてください。この拡張機能は PHP 5.5.0 で非推奨になったためです。

次に、データベース名、テーブル名、列名を常に (`) 記号で囲みます。

予約語が使用されていますRELEASE

$sql = "SELECT `lastname` FROM `Releases` WHERE `lastname` = '$usercheck' AND `TripID` = '$RLtripid'";

ここにある予約語

于 2013-01-16T15:56:54.337 に答える
0

デバッグはプログラミングにおいて非常に重要なことです。まず、変数 $usercheck と $RLtripid に値が含まれていることを確認します。

-----------------------
$sql = "SELECT `lastname` FROM `Cust_Releases` WHERE `lastname` = '$usercheck' AND `TripID`= '$RLtripid'";
エコー $sql;
$result = mysql_query($sql);
..... ----------------------------------
于 2013-01-16T16:59:38.067 に答える
-1
Try this code. It will help you

$result =  mysql_query("SELECT COUNT( * ) from Cust_Releases lastname = '$usercheck' AND TripID= '$RLtripid'");
if($result  == 0) {
 echo"no";// row not found, do stuff...
} 
else {
 echo"yes"; // do other stuff...
  }
于 2013-01-16T18:35:05.817 に答える