MySQL PHP ВСТАВЛЯЕТ возвращаемое значение с одним выполнением запросов

def find_first_match(string, *regexes):
    for regex, handler in regexes:
        m = re.search(regex, string):
        if m:
            handler(m)
            return
    else:
        raise ValueError

find_first_match(
    foo, 
    (r'foo(.+)', handle_foo), 
    (r'bar(.+)', handle_bar), 
    (r'baz(.+)', handle_baz))

Для ускорения его можно было превратить весь regexes в один внутренне и создать диспетчера на лету. Идеально, это было бы превращено в класс тогда.

8
задан halfer 7 June 2019 в 11:41
поделиться

4 ответа

INSERT просто возвращает истину или ложь. чтобы действительно вернуть что-то полезное, вам потребуется SELECT или аналогичный запрос. нет результата для получения с помощью INSERT.

34
ответ дан 5 December 2019 в 04:49
поделиться

Из документации php:

Возвращаемые значения Для SELECT , SHOW , DESCRIBE , EXPLAIN и других операторов, возвращающих набор результатов, mysql_query () возвращает ресурс в случае успеха или FALSE в случае ошибки.

Для других типов операторов SQL: INSERT , UPDATE , DELETE , DROP и т. Д., mysql_query () возвращает ИСТИНА в случае успеха или ЛОЖЬ в случае ошибки.

Ресурс возвращенного результата должен быть передан в mysql_fetch_array () и другие функции для работы с таблицами результатов, чтобы получить доступ к возвращенным данным.

Используйте mysql_num_rows () , чтобы узнать, сколько строк было возвращено для оператора SELECT или mysql_affected_rows () , чтобы узнать, сколько строк было затронуто оператор DELETE , INSERT , REPLACE или UPDATE.

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

5
ответ дан 5 December 2019 в 04:49
поделиться

Обычно, когда разработчики создают домашние функции для управления запросами, они используют два метода. Один, «запрос», используется для SELECT и co, и второй, «exec», другие INSERT, UPDATE и другие (например, в расширении PDO).

Если вы хотите сохранить свою функцию, добавьте оператор IF вокруг цикла проверка типа результатов $ (например, с помощью is_resource ())

0
ответ дан 5 December 2019 в 04:49
поделиться

From php.net http://us2.php.net/mysql_query

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.

0
ответ дан 5 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

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