2010-12-12 3 views
1

Я пытаюсь заставить этот оператор работать ... Я проверяю, существует ли $ batchid, и если он это делает, прекратите процесс сценария.Если mysql_num_rows больше 0

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

Вы не закрыты:)> 0) –

+1

@Vlad .P - Исправлено. :) – AgentConundrum

ответ

0

Просто написать:

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

Есть ли способ сделать $ bitchid по сравнению с batch_id и нечувствителен к регистру? – acctman

+3

вы можете использовать предложение «like» для сравнения. –

+0

hmm Я просто выполнил запрос, и я получаю сообщение die(), когда таблица пуста. поэтому мой следующий код для INSERT не обрабатывается. счет должен быть 0, так как ничего не существует. hmm – acctman

3

Во-первых, убедитесь, что $ batchid маскируется mysql_real_escape_string.

Этот код должен работать (не чувствительно к регистру):

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

В регистрозависимой версии (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

как я могу его изменить, если результат == 0, тогда сделайте это ... вот мой пример ниже, но он не работает. если (mysql_result (mysql_query ("SELECT COUNT (*) ОТ load_test ГДЕ \t \t \t \t \t \t \t \t \t \t batch_id = '". $ batchid. " 'И слово ='". $ данных [2]. "'"), 0) <0) { \t \t \t \t mysql_query ($ importword);} – acctman

+0

Если я правильно понимаю, что вам нужно изменить последний оператор из <к ==, потому что mysql_result не должен возвращать отрицательное значение, но ноль или положительное число. – Sagi