php - 无法弄清楚我的 SQL 语法有什么问题

标签 php mysql sql

我正在 PHP 中运行以下 SQL 查询

   try {
        $sql = "INSERT INTO doc SET type = 1, 
         candID = :candID, 
         userID = ".$_SESSION['userid'].", 
         filename = ".$_FILES['file']['tmp_name'].", 
         date=date_format(curdate(), '%d/%m/%Y')";

        $s   = $pdo->prepare($sql);
        $s->bindValue(':candID', $_POST['candid']);
        $s->execute();
    }
    catch (PDOException $e) {
        $error = 'Error adding doc: ' . $e->getMessage();
        include $errorpage;
        exit();
    }

我收到以下错误:

Error adding doc: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':\xampp\tmp\phpD58B.tmp, date=date_format(curdate(), '%d/%m/%Y')' at line 5

我不太明白为什么会出现此错误。我的语法有问题吗?

最佳答案

filename = ".$_FILES['file']['tmp_name'].", 应为 filename = '".$_FILES['file']['tmp_name' ]."',

所以代码应该看起来像

try {
    $sql = "INSERT INTO doc SET type = 1, 
     candID = :candID, 
     userID = ".$_SESSION['userid'].", 
     filename = '".$_FILES['file']['tmp_name']."', 
     date=date_format(curdate(), '%d/%m/%Y')";

    $s   = $pdo->prepare($sql);
    $s->bindValue(':candID', $_POST['candid']);
    $s->execute();
}
catch (PDOException $e) {
    $error = 'Error adding doc: ' . $e->getMessage();
    include $errorpage;
    exit();
}

关于php - 无法弄清楚我的 SQL 语法有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26235317/

相关文章:

php - mysqli 查询返回 true 但 fetch_assoc 不起作用

php - 动态创建带有悬停文本的 "button"图像

mysql - 如何在此查询中用零代替变量

php - 在mysql数据库中插入图像时出现mysql错误

mysql - 如何根据基于另一个表的 case 语句更新表? (在Mysql中)

sql - 在 SAS/SQL 中按条件删除两个变量组

sql - 根据条件将 Rowdata 转换为多行

javascript - PHP 表单处理无法与 javascript onclick 函数一起使用

php - 如何在我自己的自定义 Composer 包中添加单元测试?

javascript - jqGrid 查询中的子句