0
Я пытаюсь сделать форму регистрации, используя PDO.I получила следующий вид:Вставка данных в базу данных с использованием PDO
<form name="registration" action="registration.php" method="POST">
<label for 'username'>Username: </label>
<input type="text" name="userName"/>
<label for 'password'>Password: </label>
<input type="password" name="pass"/>
<label for 'first_name'>First name: </label>
<input type="text" name="fullName"/>
<label for 'email'>Email: </label>
<input type="text" name="email"/>
<br/>
<button type="submit">Submit</button>
</form>
И я получил registration.php файл для подключения базы данных и вставить значение:
<?php
$user = 'root';
$pass = '8169x5it';
$db = new PDO('mysql:host=localhost;dbname=reg_form', $user, $pass);
$form = $_POST;
$usernName = $form[ 'userName' ];
$pass = $form[ 'pass' ];
$fullName = $form[ 'fullName' ];
$email = $form[ 'email' ];
$sql = "INSERT INTO WebsiteUsers (userName, pass, fullName, email) VALUES (:userName, :pass, :fullName, :email)";
$query = $db->prepare($sql);
$query->execute(array(':userName'=>$userName, ':pass'=>$pass, ':fullName'=>$fullName, ':email'=>$email));
?>
Итак, проблема заключается в том, когда я помещаю некоторые из файлов и нажимаю кнопку «Отправить», мои данные НЕ вставляются в базу данных. Пожалуйста, помогите мне, я новичок в PDO и mysql, и я не понимаю, что случилось. Заранее спасибо!
основной отладки: 'var_dump ($ _ POST)', чтобы убедитесь, что PHP действительно получил ваши значения, затем начните проверять такие вещи, как возвращаемое значение '-> execute()'. вы просто предполагаете, что запрос преуспел, что совсем не так. –
Попробуйте установить PDO для исключения, если произошла ошибка. Могут быть ошибки, которые молча игнорируются. – AnotherGuy
Чтобы установить режим ошибок PDO на PDO :: ERRMODE_EXCEPTION, вы можете использовать '$ pdo = new PDO ('mysql: host = localhost; dbname = reg_form', $ user, $ pass, array ( PDO :: MYSQL_ATTR_DIRECT_QUERY = > ложно, \t PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION )); ' – VolkerK