2010-12-12 7 views
1

J'essaie de faire fonctionner cette instruction ... Je vérifie pour voir si $ batchid existe et si c'est le cas, arrêtez de traiter le script.Si mysql_num_rows est supérieur à 0

if (mysql_num_rows(mysql_query("select batch_id from load_test 
        where batch_id='".$batchid."'")) > 0) { 
    die("Error batch already present"); 
} 
+1

Vous ne l'avez pas fermé:)> 0) –

+1

@Vlad .P - Fixe. :) – AgentConundrum

Répondre

0

écrire simplement:

$res=mysql_query("select count(*) from load_test where batch_id='".$batchid."'"); 
if($res>0) 
{ 
      die("Error batch already present"); 
} 
+0

est-il un moyen de faire comparer $ bitchid à batch_id et être sensible à la casse? – acctman

+3

vous pouvez utiliser "like" clause pour la comparaison. –

+0

hmm je viens de lancer la requête et je reçois le message die() lorsque la table est vide. donc mon code suivant à INSERT ne traite pas. le compte devrait être 0 puisque rien n'est là hmm – acctman

3

Tout d'abord, assurez-vous que batchid $ est échappé avec mysql_real_escape_string.

Ce code devrait fonctionner (non sensible à la casse):

if (mysql_result(mysql_query("SELECT COUNT(*) FROM load_test WHERE batch_id='".$batchid."'"), 0) > 0) { 
    die("Error batch already present"); 
} 

La version sensible à la casse (source):

if (mysql_result(mysql_query("SELECT COUNT(*) FROM load_test WHERE batch_id LIKE BINARY '".$batchid."'"), 0) > 0) { 
    die("Error batch already present"); 
} 
+0

comment puis-je le modifier pour être si le résultat == 0 alors faites ceci ... voici mon exemple ci-dessous, mais ça ne fonctionne pas. si (mysql_result (mysql_query ("SELECT COUNT (*) FROM load_test OÙ \t \t \t \t \t \t \t \t \t \t BATCH_ID = '". $ batchid. " 'ET ='". $ data [2]. "'"), 0) <0) { \t \t \t \t mysql_query ($ importword);} – acctman

+0

Si je comprends bien, vous devez changer le dernier opérateur de <à ==, car mysql_result ne devrait pas revenir valeur négative, mais zéro ou un nombre positif. – Sagi

Questions connexes