PHP Поисковая система Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом [duplicate]

Вопрос был:

Как вернуть ответ от асинхронного вызова?

, который может быть интерпретирован как:

Как сделать синхронный асинхронный код синхронным?

Решение будет состоять в том, чтобы избежать обратных вызовов и использовать комбинацию Promises и async / await.

Я хотел бы привести пример для запроса Ajax.

(Хотя он может быть записан в Javascript, я предпочитаю писать его на Python и компилировать его в Javascript, используя Transcrypt . Это будет достаточно ясно.)

Позволяет сначала включить использование JQuery, чтобы $ был доступен как S:

__pragma__ ('alias', 'S', '$')

Определить функцию, которая возвращает Promise, в этом случае вызов Ajax:

def read(url: str):
    deferred = S.Deferred()
    S.ajax({'type': "POST", 'url': url, 'data': { },
        'success': lambda d: deferred.resolve(d),
        'error': lambda e: deferred.reject(e)
    })
    return deferred.promise()

Использовать асинхронный код, как если бы он был синхронным:

async def readALot():
    try:
        result1 = await read("url_1")
        result2 = await read("url_2")
    except Exception:
        console.warn("Reading a lot failed")

-1
задан marc_s 3 January 2015 в 13:52
поделиться

1 ответ

Параметр, являющийся логическим, является $res. mysql_query возвращает FALSE при ошибке:

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

из http://php.net/manual/en/function.mysql-query.php .

Таким образом, проблема что ваш запрос SQL недействителен, возможно, потому что partners_program не существует или потому, что одно из полей не существует.

Хорошим началом в отладке проблемы является удаление @ спереди из mysql_query. @ Подавляет все ошибки и, как правило, неодобрительно. Если ваши настройки PHP правильно настроены для отладки, вы должны затем получить описательное сообщение об ошибке. Вы также можете для целей отладки использовать mysql_error() сразу после mysql_query для более подробной информации.

Кроме того, функции mysql_* устарели долгое время, поэтому, если это возможно, вы должны проверьте библиотеки pdo или mysqli.

2
ответ дан Henrik Karlsson 26 August 2018 в 18:57
поделиться
Другие вопросы по тегам:

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