Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将curdate插入数据库时出现问题_Php_Mysql_Database - Fatal编程技术网

Php 将curdate插入数据库时出现问题

Php 将curdate插入数据库时出现问题,php,mysql,database,Php,Mysql,Database,在尝试将当前日期插入MySQL数据库时,我一直遇到一个错误。我有不同列的桌子图片。其中一个,picture_upload,应该有上传图片的日期 我总是出错 PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 in /Applications/MAMP/htdocs/pinterest/p

在尝试将当前日期插入MySQL数据库时,我一直遇到一个错误。我有不同列的桌子图片。其中一个,picture_upload,应该有上传图片的日期

我总是出错

PDOException: SQLSTATE[21S01]: Insert value list does not match column list: 
1136 Column count doesn't match value count at row 1 in 
/Applications/MAMP/htdocs/pinterest/profile.php:57 Stack trace: #0 
/Applications/MAMP/htdocs/pinterest/profile.php(57): PDOStatement->execute() #1 {main}Success

谢谢你的帮助

您应该始终明确列出插入所针对的列:

try {
    $sql = "INSERT INTO pictures (picture_name, picture_path, upload_date, use_rid, pic_like, pic_dislike) ";
    $sql .= "VALUES (:sName, :sImage, CURDATE(), :sUserId, 0, 0)";
    $stmt = $db->prepare($sql);
    $stmt->bindValue(':sName', $sName);
    $stmt->bindValue(':sImage', $img);
    $stmt->bindValue(':sUserId', $aRow->user_id);

    $stmt->execute();
} catch (PDOEXception $ex) {
    echo $ex;
}
注:

  • 由于
    picture\u id
    是一个自动递增列,如果希望MySQL自动分配一个序列值,那么应该在插入中省略该列。然后,MySQL将处理选择值的问题
  • CURDATE()
    不接受单引号,因为它是一个函数调用

尝试删除curdate()中的引号。请包含
图片表的定义。@TimBiegeleisen我更新了帖子,这里有一个链接。非常感谢。添加您试图插入的字段名,
插入图片(图片名、图片路径、上载日期、使用rid、pic喜欢、pic不喜欢)值(…
,为什么“没有帮助”?您遇到了什么错误?…没关系,请参阅@Tim B的回复。
try {
    $sql = "INSERT INTO pictures (picture_name, picture_path, upload_date, use_rid, pic_like, pic_dislike) ";
    $sql .= "VALUES (:sName, :sImage, CURDATE(), :sUserId, 0, 0)";
    $stmt = $db->prepare($sql);
    $stmt->bindValue(':sName', $sName);
    $stmt->bindValue(':sImage', $img);
    $stmt->bindValue(':sUserId', $aRow->user_id);

    $stmt->execute();
} catch (PDOEXception $ex) {
    echo $ex;
}