我发现很多答案似乎对我没有用。 当我身边有变量$消息,$ email和$日期像如何在sql查询中插入php变量?
'VALUES ('$message', '$email', '$date')';
它告诉我撇号
Parse error: syntax error, unexpected '$message' (T_VARIABLE)
当我删除,我得到这样的事情无法输入数据:未知列'字段列表'中的'$ message'。我试着插入
$message = mysql_real_escape_string($message);
$email = mysql_real_escape_string($email);
$date = mysql_real_escape_string($date);
与“”周围的变量,如
'VALUES ("$message", "$email", "$date")';
它摆脱了错误信息,但现在,而不是从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);
}
?>
有没有人告诉你关于SQL注入? – Biffen 2015-02-12 07:51:49
尝试 INSERT INTO inktable'。 '(文字,电子邮件,日期)'。 'VALUES('{$ message}','{$ email}','{$ date}')'; 并使用PDO(如果可以的话) – 2015-02-12 07:53:07
使用'mysqli_'而不是'mysql_'。你也可以使用pdo。 Mysql已弃用,并且完全不推荐 – frunkad 2015-02-12 08:21:44