gpt4 book ai didi

php - 无法将变量写入 SQL 数据库

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

我尝试制作一个简单的 PHP 系统,它获取用户的登录名、收件人姓名和消息内容并将其写入 SQL 数据库。即使在我发送消息并且页面刷新之后,我也完全没有错误。但是,我的 SQL 数据库中没有出现新条目(通过 phpMyAdmin 检查)。顺便说一句,所有这些代码都在同一页面上。

从 HTML 表单开始收集数据:

<form name="login" action="" method="POST">
<p>Recipient: <input type="text" name="recipient"/></p>
<p>Message: <input type="text" name="contents"/></p>
<input type="Submit" Name="submit" value="Send"/>
</form>

然后我设置与 SQL 数据库的连接:

<?php
$link = mysqli_connect('host','username','password','database');
$sqlaction = 'INSERT INTO $userinbox (Sender, Message) VALUES ($email, $username)';
?>

然后将信息输入数据库的函数:

<?php

session_start();

function message($link, $sqlaction)
{
$sender = $_SESSION['name'];
$recipient = strtolower($_POST['recipient']);
$contents = $_POST['contents'];

switch ($recipient) {
case 'person1':
$userinbox = 'person1';
$result = mysqli_query($link, $sqlaction);
echo 'Message sent.';
break;
case 'person2':
$userinbox = 'person2';
$result = mysqli_query($link, $sqlaction);
echo 'Message sent.';
break;
case 'person3':
$userinbox = 'person3';
$result = mysqli_query($link, $sqlaction);
echo 'Message sent.';
break;
case 'person4':
$userinbox = 'person4';
$result = mysqli_query($link, $sqlaction);
echo 'Message sent.';
break;
default:
echo 'Current valid users are list of users';
}
}

最后,我调用该函数,传递数据库连接变量:

message($link, $sqlaction);

但正如我所说,数据库中什么也没有出现。我花了 4 天尝试调试这个,现在正处于放弃的边缘。任何帮助将不胜感激。

最佳答案

您必须使用引号来插入 "$email" 等字符串,而不仅仅是 $email。您还必须使用反引号转义表名,即 this-> ` 您的 sql 查询将是 :-

$sqlaction = "INSERT INTO `$userinbox` (Sender, Message) VALUES ('$email','$username')";

请注意,对于数字(整数、 double 值、小数等),引号是可选的。请看您accept an answer如果对你有帮助的话。

关于php - 无法将变量写入 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26322719/

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