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

标签 php mysql mysqli

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

相关文章:

php - 从 PHP 代码中删除 var_dump

php - 如何使用php从周数中查找月号,名称

php - 我有查询检索 WordPress 中的所有帖子,但如何检查帖子 meta_key =“develop” 和 meta_value ='anything' 的条件

php执行多个命令,apache重启

mysql - 在我们的应用程序中使用 MySQL 密码功能

php - MYSQL PHP 删除 'Couldn' t 执行查询 :'

mysql - 使用 join、group by 和 Sum() 的 LINQ 查询

php - 为什么 MySQL 语句被忽略?

php - Mysqli_query无故返回FALSE

php - mysqli 查询不使用 JSON 和 Google Charts 返回结果