У меня есть многочисленные средства проверки ошибок, которые недавно введенный код успешно удовлетворяет требованиям, однако данные, похоже, не попадают в базу данных. Это не обновление, поэтому я считаю, что что-то не так с моей строкой кода обновления
"UPDATE user (user_username, user_first, user_last, user_email) VALUES ('$uname', '$first', '$last', '$email');";
В основном хочу, чтобы новая информация, напечатанная в моих полях ввода, была вставлена в базу данных.
Для вставки данных ваш запрос будет
INSERT INTO user (user_username, user_first, user_last, user_email)
VALUES ('$uname', '$first', '$last', '$email')
Но если вы хотите ОБНОВИТЬ свои данные, вам нужно правильно использовать предложение UPDATE.
Вы не используете синтаксис MySQL для вставки новой строки:
INSERT INTO tblName (col1, col2, col3) VALUES (x, y, z);
Вместо этого у вас есть ключевое слово UPDATE
.
Основываясь на ответе @Tim, вам, вероятно, следует также использовать подготовленное утверждение.
http://php.net/manual/en/pdo.prepared-statements.php
<?php
$stmt = $dbh->prepare("INSERT INTO user (user_username, user_first, user_last, user_email) VALUES (:usr, :first, :last, :email)");
$stmt->bindParam(':usr', $uname);
$stmt->bindParam(':first', $first);
$stmt->bindParam(':last', $last);
$stmt->bindParam(':email', $email);
$stmt->execute();
?>
bindParam
тем, что вы можете пропустить часть bindParam
и просто выполнить $stmt->execute(array('usr' => $uname, ...))
в одной строке.