gpt4 book ai didi

php - PDO准备语句将NULL值插入mysql数据库

转载 作者:行者123 更新时间:2023-11-29 19:05:08 25 4
gpt4 key购买 nike

这里我有一个基本的注册表单。

<form name="signUp" id="signUp" method="POST" action="insertUser.php">
<table>
<tr>
<td>Name</td>
<td><input type="text" name="signUpName" placeholder="Name"/></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="signUpEmail" placeholder="Email"/></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="signUpPassword" placeholder="password"/></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Go"/></td>
</tr>
</table>
</form>

它将字段数据发送到文件insertUser.php

  <?php

include 'User.php';

if(isset($_POST['submit'])){

$user = new User();

$user->setUserName($_POST['signUpName']);
$user->setUserEmail($_POST['signUpEmail']);
$user->setUserPassword($_POST['signUpPassword']);
$user->userInsert();


}

?>

该文件创建名为 User 的类的对象,并将从表单接收的数据传递给该类的变量。 User 类的 userInsert 函数最终将数据插入数据库。

<?php

class User{

public $userName, $userEmail, $userPassword;

public function getUserName(){
return $this->userName;
}

public function setUserName($userName){
$this->userName = $userName;
}

public function getUserEmail(){
return $this->userEmail;
}

public function setUserEmail($userEmail){
$this->userEmail = $userEmail;
}

public function getUserPassword(){
return $this->userPassword;
}

public function setUserPassword($userPassword){
$this->userPassword = $userPassword;
}


public function userInsert(){

global $userName, $userEmail, $userPassword;

include 'db_connection.php';

$r = $db->prepare("INSERT INTO user(Username, Useremail, Userpassword) VALUES(:userName, :userEmail, :userPassword);");
$r->bindParam(':userName',$userName);
$r->bindParam(':userEmail',$userEmail);
$r->bindParam(':userPassword',$userPassword);
$r->execute();

header('Location: index.php?successful=1');

}

}

数据库连接

<?php

try{
$db = new PDO("mysql:host=localhost;dbname=basicchatapp","root","");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e){
die("Error: ");
}

?>

现在的问题是,每次插入NULL输入时。

搜索了很多其他答案,但没有一个解决方案适合我。获得提示将会有很大帮助。谢谢。

最佳答案

可能是您的 userInsert() 函数找不到变量值,因此在函数中传递这些参数,那么它应该类似于下面的代码

 class User{

public $userName, $userEmail, $userPassword;

public function getUserName(){
return $this->userName;
}

public function setUserName($userName){
$this->userName = $userName;
}

public function getUserEmail(){
return $this->userEmail;
}

public function setUserEmail($userEmail){
$this->userEmail = $userEmail;
}

public function getUserPassword(){
return $this->userPassword;
}

public function setUserPassword($userPassword){
$this->userPassword = $userPassword;
}


public function userInsert($userName=null,$userEmail=null,$userPassword=null){
include 'db_connection.php';

$sql = "INSERT INTO user(Username, Useremail, Userpassword) VALUES($userName,$userEmail,$userPassword);";

if(mysqli_query($db,$sql) == TRUE){
header('Location: index.php?successful=1');
}
else{
header('Location: index.php?successful=0');
}
}

}

关于php - PDO准备语句将NULL值插入mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43567782/

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