我尝试制作一个简单的 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/