我尝试制作一个简单的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天时间试图调试这个并且即将放弃。任何帮助将不胜感激。
答案 0 :(得分:1)
您必须使用引号来插入"$email"
之类的字符串,而不仅仅是$email
。您还必须使用反引号转义表名,即this-&gt; `你的SQL查询将是: -
$sqlaction = "INSERT INTO `$userinbox` (Sender, Message) VALUES ('$email','$username')";
请注意,对于数字(整数,双精度值,小数等),引号是可选的。如果有帮助,请告诉您accept an answer。
答案 1 :(得分:0)
你没有
$email and $username
在此代码中定义。 如果您启用了错误修复
error_reporing(E_ALL);
您会收到类似
的内容Notice: undefined variable $email on line xxx in file.php
Notice: undefined variable $username on line xxx in file.php
还有@devaldcool说的话