gpt4 book ai didi

mysql - PHP PDO 无法将数据插入 MySQL DB

转载 作者:行者123 更新时间:2023-11-29 12:07:13 26 4
gpt4 key购买 nike

我正在学习PHP。使用XAMPP本地服务器进行测试。下面需要帮助 当我输入详细信息并单击表单中的“注册”时,我只看到一个带有 action.php 链接的空白页面。action.php 的代码如下:

include 'config.php';
error_reporting(E_ALL);
ini_set('display_errors', 1);
if(isset($_POST['register'])){
require 'config.php';
$first_name = !empty($_POST['fname']) ? trim($_POST['fname']) : null;
$last_name = !empty($_POST['lname']) ? trim($_POST['lname']) : null;
$user_name = !empty($_POST['uname']) ? trim($_POST['uname']) : null;
$pass = !empty($_POST['upass']) ? trim($_POST['upass']) : null;
$user_email = !empty($_POST['umail']) ? trim($_POST['umail']) : null;
$sql = "INSERT INTO ams_users (id, firstname, lastname, username, password, email)
VALUES(?,?,?,?,?)";
$stmt = $pdo->prepare($sql);

$result = $stmt->execute(0,$first_name, $last_name, $user_name, $pass, $user_email);
if($result){
echo 'Thank you for registering';
}else{
echo 'sorry';
}
}enter code here

register.php 表单的代码如下:

<div class="reg-form">
<h1>Register</h1>
<form action="action.php" method="POST">
<p><label>First Name* :</label>
<input id="firstname" type="text" name="fname" /></p>
<p><label>Last Name* :</label>
<input id="lasttname" type="text" name="lname" /></p>

<p><label>User Name* : </label>
<input id="username" type="text" name="uname" /></p>

<p><label>Password: </label>
<input id="password" type="password" name="upass" /></p>
<p><label>E-Mail: </label>
<input id="e-mail" type="e-mail" name="umail"/></p>

<input type="submit" name="submit" value="register" />
</form>
</div>

MySQL 表有 5 个条目:id(自动增量、名字、姓氏、用户名、密码和电子邮件。

please help where I am going wrong.

最佳答案

  • execute() 不像您那样直接接受参数数组。
  • 问号比参数少
  • 如果您将 id 设置为 AUTOINCRMENTED,那么您可以在查询中省略它

所以就变成了:

INSERT INTO ams_users (firstname, lastname, username, password, email) 
VALUES(?,?,?,?,?)

然后执行:

$result = $stmt->execute(array($first_name, 
$last_name,
$user_name,
$pass,
$user_email)
);

或者:

INSERT INTO ams_users (id,firstname, lastname, username, password, email) 
VALUES('',?,?,?,?,?)

问题是您应该已经收到错误,因此请确保它已打开:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

关于mysql - PHP PDO 无法将数据插入 MySQL DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31276844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com