如何在 sql 查询中插入 php 变量?

JoJ*_*ang 2 php sql forms variables parsing

我为此找到了很多似乎对我不起作用的答案。当我在变量 $message 和 $email 和 $date 周围有撇号时

    'VALUES ('$message', '$email', '$date')';
Run Code Online (Sandbox Code Playgroud)

它告诉我

解析错误:语法错误,意外的“$message”(T_VARIABLE)

当我删除它们时,我得到类似无法输入数据的信息:“字段列表”中的未知列“$message”。我试过插入

    $message = mysql_real_escape_string($message);    
    $email = mysql_real_escape_string($email);
    $date = mysql_real_escape_string($date);
Run Code Online (Sandbox Code Playgroud)

用“”围绕变量,如

'VALUES ("$message", "$email", "$date")';
Run Code Online (Sandbox Code Playgroud)

它摆脱了错误消息,但现在,而不是来自 html 表单的输入,我在我的数据库中得到字面上的“$message”。

我做错了什么?我的简单目标就是将电子邮件、消息和日期放入数据库中。请帮忙!谢谢!

这是我拥有的完整代码:

     <?php
if($_POST && isset($_POST['email'], $_POST['essay'])) {


    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = 'password';

    $conn=mysql_connect($dbhost, $dbuser);
    if(! $conn)
    {
        die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("Ink", $conn);

    date_default_timezone_set("America/New_York");
    $message = $_POST['essay'];
    $email = $_POST['email'];
    $date = date("y-m-d h:i:sa");


    $sql = 'INSERT INTO inktable '.
            '(writings, email, date) '.
            'VALUES ('$message', '$email', '$date')';

    mysql_select_db('ink');
    $retval = mysql_query($sql, $conn);
    if(! $retval)
    {
        die('Could not enter data: ' .mysql_error());
    }

    mysql_close($conn);
}
?>
Run Code Online (Sandbox Code Playgroud)

小智 5

我认为你需要这些小点:

  ('.$message.', '.$email.', '.$date.')';
Run Code Online (Sandbox Code Playgroud)

或者:

 ("'.$message.'", "'.$email.'", "'.$date.'")';
Run Code Online (Sandbox Code Playgroud)