PHP

PHP mysqli bind типы... ошибка 500

Ночи доброй. Вопрос интересует такого характера. Как првильно прописывать bind_param?
прописываю таким макаром
$append->bind_param(
'iisiissii',
$idvk,
$bdate,
$photo,
$sex,
$screen_name,
$first_name,
$last_name,
$can_access_closed,
$is_closed
);

потом $append-execute();

ошибку даёт 500.мне нужно передать 2 логических поля(тип tinyint), 3 строковых(varchar), 1 дату, 3 int поля.
правильно ли вообще я оформил bind?
запрос подготовил $append=$link->prepare('аля запрос');
Ошибка 500 обычно указывает на то, что на сервере произошла внутренняя ошибка. Часто это может быть связано с ошибками в синтаксисе SQL-запроса, но также может быть связано с проблемами в коде PHP.

В твоем случае, кажется, что ты правильно оформили вызов bind_param. Параметры в bind_param должны указываться в таком порядке:

Строка типов параметров: 'iisiissii'
Переменные, которые связываются с параметрами запроса: $idvk, $bdate, $photo, $sex, $screen_name, $first_name, $last_name, $can_access_closed, $is_closed
Типы параметров указываются в строке 'iisiissii', где каждый символ обозначает тип одного из параметров:

'i' - для целочисленных параметров (int)
's' - для строковых параметров (varchar)
Таким образом, ты правильно указал типы параметров в bind_param. Чтобы найти причину ошибки 500, тебе может быть полезно посмотреть логи сервера и проверить, не выводится ли там более подробное сообщение об ошибке. Это может помочь тебе найти причину ошибки.
Также можешь попробовать выполнить запрос без использования bind_param, чтобы убедиться, что сам запрос работает корректно. Например:
 $query = "INSERT INTO table (col1, col2, col3, col4, col5, col6, col7, col8, col9) VALUES ($idvk, '$bdate', '$photo', '$sex', '$screen_name', '$first_name', '$last_name', $can_access_closed, $is_closed)"; 
$result = $link->query($query);
Если такой запрос работает корректно, то это может указывать на то, что проблема связана с использованием bind_param. В этом случае тебе может помочь добавление вызова $link->error после вызова bind_param, чтобы посмотреть сообщение об ошибке:
 $append->bind_param( 
'iisiissii',
$idvk,
$bdate,
$photo,
$sex,
$screen_name,
$first_name,
$last_name,
$can_access_closed,
$is_closed
);

if (!$append->execute()) {
echo $link->error;
}
ТЕ
Тарас Ещенко
1 346
Лучший ответ