使用mysqli_stmt_bind_param时没有输出

时间:2014-09-16 17:44:45

标签: php mysql mysqli

我正在尝试将数据插入我的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

&GT;

这是我的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);
?>

我甚至没有得到&#34;错误:......&#34;我还检查了数据库中的更改,但没有成功。 有人能看出错误吗?

1 个答案:

答案 0 :(得分:1)

对于mysqli_stmt_bind_param的过程版本,第一个参数应该是语句。 Thus says the docs

该函数也返回一个布尔值,在你的情况下可能是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");
}