1

クエリで mysql_affected_rows を使用していますが、クエリが実行されたにもかかわらず false を返すように見えるので、少し混乱しています....

これは私が持っているものです:

$check = mysql_query("DELETE FROM $table 
         WHERE name = '".$darray[0]."' AND 
         password = '".$darray[1]."' AND uid = '$uid' 
         AND validation = '22'") 
         or die(mysql_error());


if(mysql_affected_rows($check)>0){
    echo 1;
    exit;

} else {
 echo 'Less than one!';
 exit;
}

私のクエリが実際に行を削除したにもかかわらず、1未満と表示される理由は何ですか?

4

3 に答える 3

4

mysql_affected_rows()結果ではなく、リンク識別子 (つまり、接続リソース) を取ります。

于 2012-05-02T04:13:41.990 に答える
2

mysql_affected_rowsクエリではなく接続リンクを受け取ります。そのパラメーターを空のままにしておくと、その接続で最後に実行されたクエリが参照されます。

于 2012-05-02T04:14:05.193 に答える
2

解決済み:

エラーは、mysql_affected_rows() がクエリを想定していないことでした。

詳細はこちら: http://php.net/manual/es/function.mysql-affected-rows.php

$check = mysql_query("DELETE FROM $table 
         WHERE name = '".$darray[0]."' AND 
         password = '".$darray[1]."' AND uid = '$uid' 
         AND validation = '22'") 
         or die(mysql_error());


if(mysql_affected_rows() >0){
    echo 1;
    exit;

} else {
 echo 'Less than one!';
 exit;
}
于 2012-05-02T04:18:06.220 に答える