【问题标题】:PHP MySQLi doesn't execute INSERT query [duplicate]PHP MySQLi不执行插入查询[重复]
【发布时间】:2019-06-20 20:07:32
【问题描述】:

我的重定向错误。但是系统不允许我删除问题 我有一个带有注册页面的网站。后端是一个 SQL 数据库,但是当 UPDATE 和 SELECT 工作时, INSERT 不工作。 IT 也没有给我任何错误。

生成 INSERT 语句的代码如下所示:

$username = "peter";
$pwhash = password_hash($password, PASSWORD_DEFAULT);

$role = "publisher";
$locked = "false";

//Prepare SQL Query
$sql = "insert into user(username, password, role, locked)";
$sql .= " VALUES (?, ?, ?, ?);";

//Reuire SQL Connection
require "db_inc.php";

//Prepare stmt
$stmt = mysqli_prepare($con, $sql);

//Bind Parameters
mysqli_stmt_bind_param($stmt, 'ssss',    
                                        $username,
                                        $pwhash,
                                        $role,
                                        $locked);

//Execute SQL
mysqli_stmt_execute($stmt);


mysqli_close($con);

SQL 数据库如下所示:

我做错了什么? $con 连接是正确的,因为它适用于 SELECT 和 UPDATE 查询。

【问题讨论】:

  • ENUM 中有什么?
  • ENUM("admin", "publisher") @TimothyLukasH.
  • @Tim 您的mysqli_prepare()mysqli_stmt_bind_param()mysqli_stmt_execute() 调用的返回值是多少?使用var_dump();edit 输出您的问题以包含输出。另外,包括var_dump(mysqli_error($con)); 的输出。
  • @Progman 我刚刚注意到一些奇怪的事情。上面的 SQL 查询是一个类的函数,成功时返回 true。在我调用该函数的文件中,成功后什么都不会发生。但它仍然将我重定向到起始页面。所以我需要先解决这个问题
  • 这是完全不同的东西......我没有将我的表单重定向到注册,而是重定向到主页。对不起。

标签: php mysql


【解决方案1】:

您是否尝试过将“插入”大写?并尝试更改 '$locked = "false";' to'$locked = 0';

【讨论】:

  • insert 不需要大写。这是开发者的偏好。
  • as @user3783243 大写无关紧要,我已经尝试过使用 0。即使我不绑定零并将其写入查询字符串,它也不起作用
  • 这是完全不同的东西......我没有将我的表单重定向到注册,而是重定向到主页。对不起。
猜你喜欢
  • 2016-01-20
  • 2019-02-07
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多