【发布时间】:2016-12-13 10:25:53
【问题描述】:
你好,我希望能分享光。我相信到目前为止取得了进展。我在这里注册:
我想做的是在发送数据库之前对我的数据进行清理。
<?php
session_start();
if(is_file('include/connection.php'))
include_once('include/connection.php');
else
exit('Database FILES MISSING:(');
if(isset($_POST['submit'])) {
$errors = array();
$data = array();
$name = mysqli_real_escape_string($_POST['name']);
$last_name = $_POST['last_name'];
$user_name = $_POST['user_name'];
$user_type = $_POST['user_type'];
$email = $_POST['email'];
$password = $_POST['password'];
$confirm_password = $_POST['confirm_password'];
// $created_at = $_POST['created_at'];
$password_hash = password_hash($password, PASSWORD_DEFAULT);
//$created_at = date('Y-m-d');
if(!($stmt = $mysqli->prepare("INSERT INTO user (name, last_name, user_name, user_type, email, password)
VALUES (?,?,?,?,?,?)"))){
echo "Prepare failed: (" . $mysqli->errno . ")" . $mysqli->error;
}
if(!$stmt->bind_param('ssssss', $name, $last_name, $user_name, $user_type, $email, $password_hash)){
echo "Binding paramaters failed:(" . $stmt->errno . ")" . $stmt->error;
}
if(!$stmt->execute()){
echo "Execute failed: (" . $stmt->errno .")" . $stmt->error;
}
if($stmt) {
$_SESSION['main_notice'] = "Successfully registered, login here!";
header('Location: index.php');
}
else{
echo "Registration failed";
}
}
$mysqli->close();
?>
执行失败:(1048)列“名称”不能为空
以上是我提交数据时遇到的错误。
尝试使用mysqli_real_escape_string AND mysqli->real_escape_string
如果我仍然需要缎面化,即使已经绑定了数据,可以提供一些建议。
我还在我的数据库中创建了 created_at 字段。见下面的代码。
$created_at = $_POST['created_at'];
$password_hash = password_hash($password, PASSWORD_DEFAULT);
$created_at = date('Y-m-d');
if(!($stmt = $mysqli->prepare("INSERT INTO user (name, last_name, user_name, user_type, email, password, created_at)
VALUES (?,?,?,?,?,?)"))){
echo "Prepare failed: (" . $mysqli->errno . ")" . $mysqli->error;
}
if(!$stmt->bind_param('ssssss', $name, $last_name, $user_name, $user_type, $email, $password_hash, $created_at)){
echo "Binding paramaters failed:(" . $stmt->errno . ")" . $stmt->error;
}
我得到这个错误:
准备失败:(1136)列计数与第 1 行的值计数不匹配 致命错误:在第 30 行的 /home/olami560/public_html/project/allocation/progress/register.php 中的非对象上调用成员函数 bind_param()
您的帮助将不胜感激。谢谢
【问题讨论】:
-
您有 6 个问号,但要插入 7 个值。
标签: php mysql forms validation mysqli