gpt4 book ai didi

php - 将空字符串保存到数据库

转载 作者:行者123 更新时间:2023-11-29 06:16:41 28 4
gpt4 key购买 nike

我正在执行此脚本以将表单中的数据保存到远程数据库中,但由于某些奇怪的原因,它将其保存为空:

Empty data

脚本是:

#FORM SECTION
$choice;
$email;
$checkbox;
$success = FALSE;

#SQL SECTION
$host = '*******';
$user = '*******';
$pass = '*******';
$db = '********';

$connection = new mysqli($host, $user, $pass, $db);
$sql = "INSERT INTO clients_and_choices (email,choice) VALUES ('$email','$choice')";
$query = mysqli_query($connection, $sql);

if ($_SERVER["REQUEST_METHOD"] == "POST"){
$email = $_POST['email'];
$choice = $_POST['choice'];

$email = $connection->real_escape_string($email);
$choice = $connection->real_escape_string($choice);

if (mysqli_connect_errno())
trigger_error(mysqli_connect_errno());

if (!filter_var($email, FILTER_VALIDATE_EMAIL) OR empty($choice)){
http_response_code(400);
echo "Houston we got a problem!";
exit;
}

if ($query){
$success = TRUE;
http_response_code(200);
echo 'Thank you :D';
}
else{
http_response_code(500);
echo "Bummer! It seems something went wrong :< If you would be so kind to try again :D";
}

mysqli_close($connection);

if (isset($_GET["ajax"]))
echo $success ? "success" : "error";
}

当我第一次使用 mysql 而不是 mysqli 编写它时,它起作用了……也许我做错了什么,但我真的说不出来,我也不知道不知道如何在 PHP 中进行调试。

最佳答案

正如我在评论中所说:

这个 $sql = "INSERT INTO clients_and_choices (email,choice) VALUES ('$email','$choice')"; 属于 /strong> 您验证了输入并确保它们不为空。还要确保您的表单确实使用了 post 方法,并且输入具有匹配的名称属性。

您可能也在同一个文件中使用 HTML 表单和 PHP/SQL,这将导致在页面加载后立即将空值插入数据库。

您还需要删除它们,因为没有必要使用它们:

$choice;
$email;
$checkbox;

然后检查您的输入是否为空。

一定要检查错误。


我确实注意到这里可以使用 Ajax if (isset($_GET["ajax"]))

如果您在其中设置有关要传递给数据库的数据的任何内容,那么这也会导致过早的数据输入。

关于php - 将空字符串保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35484719/

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