из следующего кода:
function rememberData($_POST) {
foreach ($_POST as $key => $value) {
$_SESSION[$key] = $value;
}
return $_SESSION;
}
Выше я сохранил $ _POST в $ _SESSION. Я вызываю метод на другой странице. Просто опубликуйте его, чтобы показать процесс.
$columns = implode(",", array_keys($_SESSION));
$values = implode(",", array_values($_SESSION));
$sql = "INSERT INTO table ($columns) VALUES ('$values')";
// Execute query
if (mysqli_query($connection,$sql)) {
echo "$key column was added";
} else {
echo "Error adding columns: " . mysqli_error($connection);
}
Я сохранил все данные $ _POST из формы в $ _SESSION, используя foreach. Данные отлично совпадают с ключами, когда я var_dump сеанс. Я понимаю, что это не безопасно, но это не важно. Кто-нибудь знает, почему я продолжаю получать эту ошибку MYSQL?
Редактировать: Добавлено как я установил $ _SESSION. Я делаю это, поэтому у меня есть доступ к данным POST для нескольких страниц.
Редактировать 2: ниже сказано, что у меня есть синтаксическая ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с именем «», «Date0», «Day0», «UnitHours0», «ProjectHours0», «QwestMark0», «TotalTickets0», «в строке 1
Так что я думал, что это единственные кавычки в начале и конце, но если я обрезаю те, они не уйдут. Это должен быть только браузер, отображающий информацию? В моем коде нет ни одной кавычки. Это подтверждается var_dump.
foreach ($_SESSION as $key => $value) {
$columns .= "\"$key\"" . ",";
$values .= "\"$value\"" . ",";
}
$columns = rtrim($columns, ",");
$values = rtrim($values, ",");
echo $sql = "INSERT INTO tables ($columns) VALUES ($values)";
// Execute query
if (mysqli_query($connection,$sql)) {
echo "$key column was added";
} else {
echo mysqli_error($connection);
}
'' $ values'' имеет некоторые дополнительные символы, которых у него не должно быть - можете ли вы догадаться, что это такое? – Marty
'$ _SESSION', может быть, вы хотите использовать некоторые, как будто это' $ _SESSION ['name'] 'его просто предположение, разместите код, в котором вы устанавливаете сеанс. Догадки обычно не работают. Спасибо –
Почему бы не повторить ваш '$ sql' и посмотреть, сколько столбцов и значений у него есть? – Rasclatt