В Visual Studio Code я работаю над созданием веб-сайта. На странице HTML у меня есть форма, которая получает данные пользователя:
<form action="Data.php" style="position: fixed; top: 60px; left: 5px;" method="POST">
<fieldset>
<legend>Create Account</legend>
Username: <br>
<input type="text" name="username">
<br>
Email:<br>
<input type="text" name="email">
<br>
Password:<br>
<input type="text" name="password">
<br><br>
<input type="submit" name ="Submit" value="Create">
</fieldset>
</form>
, а затем отправляет ее в файл php с именем Data. php:
<?php
if(isset($_POST['Submit'])){
$host = "localhost:3306";
$username = "Arthos";
$password = "Pancake101!";
$database = "userinfo";
$user = $_POST['username'];
$email = $_POST['email'];
$pass = $_POST['password'];
$connect = mysqli_connect($host, $username, $password, $database);
$query = "INSERT INTO 'users'('username', 'email', 'password') VALUES ("'.$user.'", "'.$email.'", "'.$pass.'")";
$result = mysqli_query($connect,$query);
mysqli_close($connect);
}
?>
Я не знаю, как просмотреть php echos или mysql ошибки в коде. Я использую базовый проект html, и они не отображаются в консоли отладки. Я могу отправить, как выглядит база данных, если это необходимо.
РЕДАКТИРОВАТЬ: Новый php код с PDO, все еще не работает:
<?php
echo "Made it!";
$dsn = "mysql:host=localhost;dbname=userinfo;charset=utf8mb4";
$options = [
PDO::ATTR_EMULATE_PREPARES => false, // turn off emulation mode for "real" prepared statements
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, //turn on errors in the form of exceptions
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, //make the default fetch be an associative array
];
try {
$pdo = new PDO($dsn, "username", "password", $options);
$stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->execute([$_POST['username'], $_POST['email'], $_POST['password']]);
$stmt = null;
} catch (Exception $e) {
error_log($e->getMessage());
exit('Something weird happened'); //something a user can understand
}
?>
РЕДАКТИРОВАТЬ 2: Я получил php файл для запуска. Мне пришлось возиться с каким-то странным кодом Visual Studio, и он, очевидно, не смог найти мой php.exe
файл, так что теперь он работает.
Но теперь я получаю сообщение об ошибке:
" Драйвер не найден "для моего php файла, поэтому я должен сейчас это выяснить.
Я не внес никаких изменений в код, который можно увидеть в Data.php
копии выше.
Для последней проблемы мне нужно было раскомментировать строку в php.ini
. Если у вас есть эта проблема go в вашем файле php.ini
, отредактируйте ее, чтобы избавиться от точки с запятой до:
; extension=pdo_mysql
Это действительно должно быть: extension=pdo_mysql