PHP插入不插入任何数据

时间:2015-01-05 16:05:04

标签: php mysql mysqli sql-insert

我有一个php语句,可以在我的mySQL数据库中插入一些信息。连接完美。我遇到的问题是我收到以下错误代码:

  

错误:INSERT INTO任务(' taskName',' requestedBy',' details',   ' dateAdded')VALUES(' test1',' test3',' test3',2015-01-05')你有   SQL语法中的错误;查看与您的手册相对应的手册   MySQL服务器版本,用于在' taskName'附近使用正确的语法,   ' requestedBy','详细信息',' dateAdded')VALUES(' test1',' test3',' ; TE'   在第1行

功能如下

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行的多种不同解决方案,如下所示

$sql = "INSERT INTO tasks ('taskName', 'requestedBy', 'details', 'dateAdded') VALUES ('$taskname' ,'$requestedby' ,'$details', $datenow')";

$sql = "INSERT INTO tasks (taskName, requestedBy, details, dateAdded) VALUES ($taskname ,$requestedb ,$details, $datenow)";

$sql = "INSERT INTO tasks (`taskName`, `requestedBy`, `details`, `dateAdded`) VALUES (`$taskname` ,`$requestedb` ,`$details`, `$datenow`)";

现在我陷入了困境,无法想到更多的事情要尝试。

2 个答案:

答案 0 :(得分:2)

$sql = "INSERT INTO tasks (taskName, requestedBy, details, dateAdded) VALUES ('$taskname' ,'$requestedby' ,'$details', '$datenow')";

// Removed quotes from columns, and added missing quote on datenow

请注意,这种将值添加到数据库中的技术非常不安全,并且容易受到SQL注入攻击。

答案 1 :(得分:0)

您不得将字段名称括在撇号或引号中。将它们用引号(`)括起来或按原样使用它们。

$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')";

但是,如果字段名称是MySQL关键字,或者它包含空格,引号,逗号,括号,运算符或其他在SQL中具有特殊含义的字符,则必须将它们括在后引号中,否则MySQL将报告语法特殊字符的错误。