Я уже давно готовлю подготовленные заявления, но сегодня, когда я пытался вызвать функцию MySQL из подготовленного заявления, я получаю следующее:PHP-сообщение о готовящемся вызове при вызове функции MySQL
Fatal error: Call to a member function fetch_array() on boolean in DB.php on line 336
Это код, я использую, и нет ничего отличается от моих обычных SELECT
, UPDATE
или DELETE
querys, я также не имею никаких вопросов, требующие процедуры, предоставляются ни один из моих процедур возвращения какого-либо значения.
$sql = "SELECT FN_MAINTAIN_ASSET(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AS assetId;";
try {
$conn = $this->open();
$stmt = $conn->prepare($sql);
if($stmt === false) {
trigger_error(sprintf($txt["error_sql"], $conn->error), E_USER_ERROR);
}
$stmt->bind_param('iiiisssbbiiiis', $modify, $type, $category, $year, $title, $description, $imageFilename, $imageMain, $imageThumbnail, $membersOnlyView, $privateView, $status, $memberId, $createdIp);
$stmt->execute();
$rs = $stmt->get_result();
$result = $rs->fetch_array(MYSQL_ASSOC); // Line 336
$rs->free();
$stmt->close();
$this->close($conn);
} catch (Exception $e) {
$logObj->error($e->getMessage());
}
$rs
пуст как раз перед линией 336, без каких-либо сообщений об ошибках $stmt
либо.
Если у кого есть предложения или идеи, очень благодарен.
Проверьте значение '$ rs' перед выполнением следующей инструкции – Hackerman
Вы явно включили исключения? Если нет, попытка try/catch бесполезна, потому что mysqi/pdo по умолчанию отказывается, возвращая логическое значение false, а не исключая исключения. либо включить исключения, либо начать явно проверять возвращаемые значения. –