大家好我在000webhost上设置了一个表。我用id,name,username,age和password列设置了它。由于某种原因,当我运行寄存器的代码时,用户名不会显示在表中,我不确定错误是什么。这是Register.php的代码:
<?php
$con = mysqli_connect("*****", "****", "*****", "****");
$name = $_POST["name"];
$age = $_POST["age"];
$username = $_POST["username"];
$password = $_POST["password"];
$statement = mysqli_prepare($con, "INSERT INTO user (name, username, age, password) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "siss", $name, $username, $age, $password);
mysqli_stmt_execute($statement);
$response = array();
$response["success"] = true;
echo json_encode($response);
?>
答案 0 :(得分:1)
As I originally stated in comments:
您尝试使用grep 'Oct 23 21:22:44' | '80' /var/log/messages
参数作为整数插入字符串。
订单在绑定时很重要。
您需要将当前参数更改为i
,同时确保年龄列确实是整数类型。
检查查询中的错误会告诉您有关它的信息。
我也希望你不存储纯文本密码。如果您计划上线,请使用ssis
。
很抱歉成为坏消息的承担者,但如果是这样的话,你就会被黑客入侵。
在不使用安全密码散列函数的情况下使用预准备语句不会保证您的网站不会受到损害。
答案 1 :(得分:0)
您的绑定语句具有不正确的格式说明符。改变这一行
mysqli_stmt_bind_param($statement, "ssis", $name, $username, $age, $password);
要
S
这些说明符需要匹配列和变量类型。 字符串的i
和 Int