У меня есть сложный запрос, который выполняется как это:
if ($stmt = $dbi->prepare($pt_query)) {
$stmt->bind_param('ssssssssi', $snome,$scognome,$ssocieta,$svia,$slocalita,$sprovincia,$scap,$stelefono,$sfax,$uid);
$stmt->execute();
echo $dbi->error;
$stmt->close();
} else {
printf("Error -> %s\n", $dbi->error);
}
Эта вещь перестала работать без любой ошибки, она просто не обновляет базу данных. С тех пор существует тонна данных, которые рассматривают перед этой вещью я хотел бы знать, существует ли какой-либо способ показать фактический запрос, что mysqli выполняется для понимания, где проблема.
Спасибо.
Если ваш оператор не работает, вы должны проверить $ stmt-> error
(в отличие от $ dbi-> error
). Что касается получения фактического текста запроса: это невозможно. При использовании подготовленных операторов библиотека использует специальный протокол, который не генерирует фактическую строку запроса для каждого вызова -> execute ()
.
На основе веб-сайта PHP mysql нет реального способа сделать это. Но вы можете попробовать эту функцию , поскольку она выдает ошибки в вашем запросе.
Вы можете включить ведение журнала в самой базе данных MySQL , т.е. добавьте строку log = logfile в my.ini.
Обратитесь к документации MySQL для получения дополнительной информации, если это необходимо.