Что состоит в том, чтобы проверить надлежащий путь, возвратил ли mysql_query () какие-либо результаты?

У меня есть немного более длинный форматер для JavaScript здесь ...

Вы можете сделать форматирование несколькими способами:

  • String.format(input, args0, arg1, ...)
  • String.format(input, obj)
  • "literal".format(arg0, arg1, ...)
  • "literal".format(obj)

Кроме того, если вы говорите ObjectBase.prototype.format (например, с DateJS ) он будет использовать это.

Примеры ...

var input = "numbered args ({0}-{1}-{2}-{3})";
console.log(String.format(input, "first", 2, new Date()));
//Outputs "numbered args (first-2-Thu May 31 2012...Time)-{3})"

console.log(input.format("first", 2, new Date()));
//Outputs "numbered args(first-2-Thu May 31 2012...Time)-{3})"

console.log(input.format(
    "object properties ({first}-{second}-{third:yyyy-MM-dd}-{fourth})"
    ,{
        'first':'first'
        ,'second':2
        ,'third':new Date() //assumes Date.prototype.format method
    }
));
//Outputs "object properties (first-2-2012-05-31-{3})"

Я также связался с .asFormat и у меня есть определенное место на случай, если уже есть string.format (например, с MS Ajax Toolkit (я ненавижу эту библиотеку).

13
задан Pradeep 10 May 2018 в 09:56
поделиться

8 ответов

Используйте mysql_num_rows :

 if (mysql_num_rows($result)) {
    //do stuff
 }
23
ответ дан 1 December 2019 в 17:45
поделиться

ну ...

по определению mysql_query:

mysql_query () возвращает ресурс на успех или FALSE при ошибке.

но что вам нужно понять, так это то, что если эта функция возвращает значение, отличное от FALSE, запрос был выполнен без проблем (правильный синтаксис, соединение все еще живо и т. д.), но это не означает, что вы запрашиваете возвращает некоторую строку.

например

<?php

$result = mysql_query("SELECT * FROM a WHERE 1 = 0");

print_r($result); // => true

?>

, поэтому, если вы получите FALSE, вы можете использовать

mysql_errorno () и mysql_error () , чтобы узнать, что произошло ..

после с этим:

вы можете использовать mysql_fetch_array () для получения построчно из запроса

1
ответ дан 1 December 2019 в 17:45
поделиться

mysql_num_rows

Извлекает количество строк из набора результатов. Эта команда действительна только для таких операторов, как SELECT или SHOW, которые возвращают фактический набор результатов.

Если совпадений нет, то возвращаемое значение будет ноль и фактически FALSE .

$result = mysql_query($query);

if(mysql_num_rows($result))
{ //-- non-empty rows found fitting your SQL query

  while($row = mysql_fetch_array($result))
  {//-- loop through the rows, 
   //--   each time resetting an array, $row, with the values

  }
}

Что хорошо, если вы только вытащите из базы данных. Если вы изменяете или удаляете строки из базы данных и хотите узнать, сколько из них было затронуто ...

Чтобы получить количество строк, затронутых запросом INSERT, UPDATE, REPLACE или DELETE, используйте mysql_affected_rows () .

$result = mysql_query($query);

if(mysql_affected_rows())
{ //-- database has been changed 

}

//-- if you want to know how many rows were affected:
echo 'Rows affected by last SQL query: ' .mysql_affected_rows();

mysql_query () вернет только FALSE , если запрос завершился неудачно. Он вернет ИСТИНА , даже если у вас нет строк, но вы успешно запросили базу данных.

Эта команда действительна только для таких операторов, как SELECT или SHOW, которые возвращают фактический набор результатов.

Если совпадений нет, то возвращаемое значение будет ноль и фактически FALSE .

$result = mysql_query($query);

if(mysql_num_rows($result))
{ //-- non-empty rows found fitting your SQL query

  while($row = mysql_fetch_array($result))
  {//-- loop through the rows, 
   //--   each time resetting an array, $row, with the values

  }
}

Что хорошо, если вы только вытащите из базы данных. Если вы изменяете или удаляете строки из базы данных и хотите узнать, сколько из них было затронуто ...

Чтобы получить количество строк, затронутых запросом INSERT, UPDATE, REPLACE или DELETE, используйте mysql_affected_rows () .

$result = mysql_query($query);

if(mysql_affected_rows())
{ //-- database has been changed 

}

//-- if you want to know how many rows were affected:
echo 'Rows affected by last SQL query: ' .mysql_affected_rows();

mysql_query () вернет FALSE , только если запрос завершился неудачно. Он вернет ИСТИНА , даже если у вас нет строк, но вы успешно запросили базу данных.

Эта команда действительна только для таких операторов, как SELECT или SHOW, которые возвращают фактический набор результатов.

Если совпадений нет, то возвращаемое значение будет ноль и фактически FALSE .

$result = mysql_query($query);

if(mysql_num_rows($result))
{ //-- non-empty rows found fitting your SQL query

  while($row = mysql_fetch_array($result))
  {//-- loop through the rows, 
   //--   each time resetting an array, $row, with the values

  }
}

Что хорошо, если вы только вытащите из базы данных. Если вы изменяете или удаляете строки из базы данных и хотите узнать, сколько из них было затронуто ...

Чтобы получить количество строк, затронутых запросом INSERT, UPDATE, REPLACE или DELETE, используйте mysql_affected_rows () .

$result = mysql_query($query);

if(mysql_affected_rows())
{ //-- database has been changed 

}

//-- if you want to know how many rows were affected:
echo 'Rows affected by last SQL query: ' .mysql_affected_rows();

mysql_query () вернет FALSE , только если запрос завершился неудачно. Он вернет ИСТИНА , даже если у вас нет строк, но вы успешно запросили базу данных.

$result = mysql_query($query);

if(mysql_num_rows($result))
{ //-- non-empty rows found fitting your SQL query

  while($row = mysql_fetch_array($result))
  {//-- loop through the rows, 
   //--   each time resetting an array, $row, with the values

  }
}

Что все хорошо, если вы вытаскиваете только из базы данных. Если вы изменяете или удаляете строки из базы данных и хотите узнать, сколько из них было затронуто ...

Чтобы получить количество строк, затронутых запросом INSERT, UPDATE, REPLACE или DELETE, используйте mysql_affected_rows () .

$result = mysql_query($query);

if(mysql_affected_rows())
{ //-- database has been changed 

}

//-- if you want to know how many rows were affected:
echo 'Rows affected by last SQL query: ' .mysql_affected_rows();

mysql_query () вернет FALSE , только если запрос завершился неудачно. Он вернет ИСТИНА , даже если у вас нет строк, но вы успешно запросили базу данных.

$result = mysql_query($query);

if(mysql_num_rows($result))
{ //-- non-empty rows found fitting your SQL query

  while($row = mysql_fetch_array($result))
  {//-- loop through the rows, 
   //--   each time resetting an array, $row, with the values

  }
}

Что все хорошо, если вы только вытащите из базы данных. Если вы изменяете или удаляете строки из базы данных и хотите узнать, сколько из них было затронуто ...

Чтобы получить количество строк, затронутых запросом INSERT, UPDATE, REPLACE или DELETE, используйте mysql_affected_rows () .

$result = mysql_query($query);

if(mysql_affected_rows())
{ //-- database has been changed 

}

//-- if you want to know how many rows were affected:
echo 'Rows affected by last SQL query: ' .mysql_affected_rows();

mysql_query () вернет только FALSE , если запрос завершился неудачно. Он вернет ИСТИНА , даже если у вас нет строк, но вы успешно запросили базу данных.

6
ответ дан 1 December 2019 в 17:45
поделиться

Если вы проверяете ровно одну строку:

if ($Row = mysql_fetch_object($result)) {
    // do stuff
}

Вы можете использовать вместо него mysql_fetch_array () или что-то еще, но принцип тот же. Если вы ожидаете 1 или более строк:

while ($Row = mysql_fetch_object($result)) {
    // do stuff
}

Это будет повторяться до тех пор, пока не закончатся строки, после чего продолжится.

7
ответ дан 1 December 2019 в 17:45
поделиться

А как насчет этого:

$query = "SELECT * FROM members WHERE username = '$_CLEAN[username]'
                                  AND password = '$_CLEAN[password]'";
$result = mysql_query($query);
$result = mysql_fetch_array($result);

//you could then define your variables like:
$username = $result['username'];
$password = $result['password'];

if ($result)
{ ...

Мне он нравится, потому что я могу быть очень конкретным с результатами, возвращаемыми из mysql_query.

-Иван Новак

2
ответ дан 1 December 2019 в 17:45
поделиться

Я использовал следующее:

if ($ result! = 0 && mysql_num_rows ($ result)) {

Если запрос ничего не возвращает, это будет логический результат и его значение будет 0.

Итак, вы проверяете, есть ли '

3
ответ дан 1 December 2019 в 17:45
поделиться
$sql = "SELECT columns FROM table";
$results = mysql_query($sql, $conn);
$nResults = mysql_num_rows($results);
if ($nResults > 0) {
   //Hurray
} else {
   //Nah
}

Это должно сработать.

6
ответ дан 1 December 2019 в 17:45
поделиться
$result = mysql_query(...);

if(false !== $result)
{
    //...
}
0
ответ дан 1 December 2019 в 17:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: