为啥用户输入不附加到我的 SQL 数据库?
Posted
技术标签:
【中文标题】为啥用户输入不附加到我的 SQL 数据库?【英文标题】:Why does the user input not append to my SQL database?为什么用户输入不附加到我的 SQL 数据库? 【发布时间】:2020-04-13 12:58:22 【问题描述】:我正在为我的客户开发登录/注册表单。现在我正在处理表单的注册部分,但我似乎遇到了问题。
如果当前不存在,我正在尝试将用户的输入附加到数据库中。我正在使用 php 版本 7 开发此功能。但是,代码似乎没有将数据附加到数据库中即使告诉我它已成功完成。
代码如下:
<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
//define variables and set values to null
$email = $code = "";
//set variable values to html input
$email = $_POST['email'];
$code = $_POST['code'];
//check if email exists
$stmt = $conn->prepare("SELECT userEmail FROM userDetails WHERE userEmail=?");
$stmt->bind_param("s", $prepemail);
//set parameters and execute
$prepemail = $email;
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0)
echo "email exists";
return false;
else
//$stmt->close(); removed as per @Akintunde-Rotimi's suggestion
//insert email into database
$stmt = $conn->prepare("INSERT INTO userDetails (userEmail) VALUES (?)");
$stmt->bind_param("s", $newemail);
//set parameters and execute
$newemail = $email;
$stmt->execute();
echo "New records created successfully";
?>
代码成功连接到数据库,甚至告诉我用户是否已经存在。它只是没有将用户的电子邮件添加到数据库中,我似乎不知道为什么。
我已经研究了如何使用 prepared statements 将数据插入数据库的方法,就像我在这里所做的那样。我使用了W3Schools 作为参考,但仍然没有运气。
【问题讨论】:
您在尝试保存之前已关闭数据库连接 @Akintunde-Rotimi 我已将您的建议应用于我的代码,但仍然存在相同的问题。有任何想法吗?我还编辑了问题以反映您的建议 【参考方案1】:代码似乎没有任何明显的拼写错误,那么您是否尝试过捕捉错误?替换
$stmt->execute();
与
if(!$stmt->execute())
trigger_error("there was an error....".$conn->error, E_USER_WARNING);
您还可以检查有多少行受到影响,-1 表示有错误。
printf("%d Zeile eingefügt.\n", $stmt->affected_rows);
此外,还可以显示更多错误(至少对于开发而言)
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// ...
【讨论】:
以上是关于为啥用户输入不附加到我的 SQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章
oracle 11g 的SQL的用户名和口令是啥,而且用户名可以输入但是口令为啥输入不了???
为啥我的文件内容/用户输入不匹配? (缺少chomp规范)[重复]