Я пытаюсь вставить данные в базу данных MySQL. Все, что я получаю, это пустая страница и без ошибок.
Мой index.php:
<?php include 'header.php';
include 'functions.php'?>
<body>
<form role="form" action="ins-user.php" method="post">
<div class="form-group">
<label for="mName">Username</label>
<input type="text" class="form-control" id="mName" placeholder="Enter username" style="width: 45%">
</div>
<div class="form-group">
<label for="mPass">Password</label>
<input type="password" class="form-control" id="mPass" placeholder="Password" style="width: 45%">
</div>
<div class="form-group">
<label for="eMail">E-Mail</label>
<input type="email" class="form-control" id="eMail" placeholder="Enter E-Mail" style="width: 45%">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</body>
</html
>
А вот и мой ins-user.php:
<?php
include 'header.php';
include 'functions.php';
$sql = "INSERT INTO my_db.test_table (mName,mPass,eMail) VALUES(?,?,?)";
$stmt = mysqli_prepare($con, $sql);
mysqli_stmt_bind_param('sss',
$_POST['mName'],
password_hash($_POST['mPass'), PASSWORD_DEFAULT),
$_POST['eMail']
);
if (!mysqli_stmt_execute($con,$stmt)) {
die('Error: ' . mysqli_error($con));
}
echo "User added!";
mysqli_close($con);
?>
Я даже не получаю сообщение «Ошибка: …». Я также проверил изменения в своей базе данных, но безуспешно.
Кто-то может увидеть ошибку ??
Для процедурной версии mysqli_stmt_bind_param
первый параметр должен быть оператором. Так говорит документация.
Эта функция также возвращает логическое значение, которое, вероятно, false
в твоем случае.
if (!mysqli_stmt_bind_param(
$stmt,
'sss',
$_POST['mName'],
password_hash($_POST['mPass'), PASSWORD_DEFAULT),
$_POST['eMail']))
{
// If you get here, binding the parameter failed.
die("Binding failed");
}
Других решений пока нет …