2

行が返されない場合、mysql_num_rowsはfalseを返すため、次のようにするのが最善でしょうか。

$query = mysql_query("SELECT id FROM table WHERE something = 'this'"); 
$result = mysql_num_rows($query);

if ($result) { }

または私がすべきこと:

if ($result >= 1) { }
4

5 に答える 5

5

適切な方法は、古い関数の代わりにPDOを使用することです。mysql_*

$stmt = $dbh->prepare('SELECT item_id FROM Items WHERE name = :param');
$stmt->bindParam( ':param', $some_name, PDO::PARAM_STR, 127 );
if ( $stmt->execute() )
{
   echo $stmt->rowCount();
   var_dump( $stmt->fetchAll( PDO::FETCH_ASSOC ));
}
于 2011-10-14T12:50:01.987 に答える
3

適切なもの

$result = mysql_query("SELECT id FROM table WHERE something = 'this'"); 
if (mysql_num_rows($result)){
    //there are results
}

ただし、チェックせずにこれを簡単に行うことができます

$result = mysql_query("SELECT id FROM table WHERE something = 'this'"); 
while($row = mysql_fetch_assoc($result))
    //there are results
}

お願いします。変数に固有名を付けます

于 2011-10-14T12:37:33.907 に答える
1

false行が返されない場合は返されませんfalse。エラーが発生した場合は返されます。あなたはそれをこのように扱うことができます:

 if ($result === false) {
    /* An error occurred - do something */
 } else {
    /* $result is set to some number >= 0 */
 }
于 2011-10-14T12:39:17.793 に答える
0

正直に言うと

$query = mysql_query("SELECT id FROM table WHERE something = 'this'"); 
if (mysql_num_rows($query)!==FALSE){
    //there are results
}

より適切です。

于 2011-10-14T12:39:45.670 に答える
0

Countは値を返しますが、カウントしてmysql_num_rowsを呼び出すことはできません。どちらか一方です。

あなたができる

$isExist = mysql_query("Select count(id) from ..."); 
$r = mysql_fetch_array($isExist);
if($r['COUNT(id)'] > 0){
//item exists
}else{
//item doesnt exist
}

または、次のようにクエリを実行できる場合:

$isexist = mysql_query("select * from wcddl_filehosts where downloadid = '".$download[id]."'");
if(mysql_num_rows($isExists)>0){
//we have items
}else{
//we dont have items
}
于 2016-09-21T05:22:53.753 に答える