PHP插入到不插入任何数据中
我有一个php语句,可以在mySQL数据库中插入一些信息。这个连接工作得很好。我遇到的问题是,我得到了以下错误代码: 错误:在任务中插入“taskName”、“requestedBy”、“details”, “dateAdded”值“test1”、“test3”、“test3”,2015-01-05“您有 SQL语法中的错误;检查与您的产品相对应的手册 MySQL服务器版本,以便在taskName'附近使用正确的语法, “requestedBy”、“details”、“dateAdded”值“test1”、“test3”、“te” 在1号线 功能如下PHP插入到不插入任何数据中,php,mysql,mysqli,sql-insert,Php,Mysql,Mysqli,Sql Insert,我有一个php语句,可以在mySQL数据库中插入一些信息。这个连接工作得很好。我遇到的问题是,我得到了以下错误代码: 错误:在任务中插入“taskName”、“requestedBy”、“details”, “dateAdded”值“test1”、“test3”、“test3”,2015-01-05“您有 SQL语法中的错误;检查与您的产品相对应的手册 MySQL服务器版本,以便在taskName'附近使用正确的语法, “requestedBy”、“details”、“dateAdded”值“t
if(isset($_POST["submitTask"])){
insertTask();
};
function insertTask(){
$servername = "localhost";
$username = "tasktrack";
$password = "";
$dbname = "tasktrack";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$taskname = $_POST["task_name"];
$requestedby= $_POST["requested_by"];
$details = $_POST["details"];
$datenow = date("Y-m-d");
$sql = "INSERT INTO tasks ('taskName', 'requestedBy', 'details', 'dateAdded') VALUES ('$taskname' ,'$requestedby' ,'$details', $datenow')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
};
现在我被卡住了,想不出更多的东西来尝试
$sql = "INSERT INTO tasks (taskName, requestedBy, details, dateAdded) VALUES ('$taskname' ,'$requestedby' ,'$details', '$datenow')";
// Removed quotes from columns, and added missing quote on datenow
请注意,这种向数据库中添加值的技术非常不安全,并且容易受到SQL注入攻击。您不能将字段名括在撇号或引号中。要么用反引号括起来,要么原封不动地使用它们
$sql = "INSERT INTO tasks (`taskName`, `requestedBy`, `details`, `dateAdded`) VALUES ('$taskname' ,'$requestedby' ,'$details', '$datenow')";
或
但是,如果字段名是MySQL关键字,或者它包含空格、引号、逗号、括号、运算符或其他在SQL中具有特殊含义的字符,则必须将它们括在反引号中,否则MySQL将在特殊字符处报告语法错误。您的三次尝试都是错误的。第一,只要删除列的引号,你就会高兴得跳起来;-第一个中缺少$datenow'的引号。如果列和表名有反勾号,则需要反勾号。。。和值的直接单引号或双引号。您应该转义您的值或使用一个准备好的语句来避免sql注入。单引号或双引号用于字符串值。您的代码易受SQL注入攻击;您应该继续阅读。同时根据您的代码示例,您目前缺少一个“大约$datenow”。我看到$datenow'没有询问这个漏洞,因为它只会出现在我的笔记本电脑上,因为它是一个个人系统。我以前也试过这种方法,当每件事都在30秒内发生时,重复的事情就会发生。@Kieranmv95这并不重要;每当你插入一个包含“字符”的文本时,你就会中断你自己的查询。我已经知道这些事情,并且可能会在以后的某个日期修复,因为我在半小时前才开始修复XD,不管怎样修复都有效谢谢,将在8中接受minutes@Blake好吧,结果还好:-
$sql = "INSERT INTO tasks (`taskName`, `requestedBy`, `details`, `dateAdded`) VALUES ('$taskname' ,'$requestedby' ,'$details', '$datenow')";
$sql = "INSERT INTO tasks (taskName, requestedBy, details, dateAdded) VALUES ('$taskname' ,'$requestedby' ,'$details', '$datenow')";