我使用PDO,无法插入一些数据:
使用此代码:

$sql  = 'INSERT INTO `releases` (id, artists, release, label, catalog, date, tracklist, type, status, vote, votes_count) ';
$sql .= 'VALUES (:id, :artists, :release, :label, :catalog, :date, :tracklist, :type, :status, :vote, :votes_count)';

$query = $this->db->prepare($sql);

$query->bindParam(':id', 0, PDO::PARAM_INT);
$query->bindParam(':artists', implode('|||', $data['artists']), PDO::PARAM_STR);
$query->bindParam(':release', $data['release'], PDO::PARAM_STR);
$query->bindParam(':label', $data['label'], PDO::PARAM_STR);
$query->bindParam(':catalog', $data['catalog'], PDO::PARAM_STR);
$query->bindParam(':date', $data['date'], PDO::PARAM_STR);
$query->bindParam(':tracklist', $data['tracklist'], PDO::PARAM_STR);
$query->bindParam(':type', $data['type'], PDO::PARAM_STR);
$query->bindParam(':status', $data['status'], PDO::PARAM_INT);
$query->bindParam(':vote', 0, PDO::PARAM_INT);
$query->bindParam(':votes_count', 0, PDO::PARAM_INT);

$query->execute();

但数据并没有插入数据库。所有的名字都是有效的。id作为自动递增字段。
如果我使用此代码:
$this->db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
$sql='插入releases(艺术家、发行版、标签、目录、日期、轨迹列表、类型、状态、投票、投票计数)';
$sql.='值(:艺术家,:发布,:标签,:目录,:日期,:轨迹列表,:类型,:状态,:投票,:投票数');
$query = $this->db->prepare($sql);

$array = array(':artists'   => implode('|||', $data['artists']),
               ':release'   => $data['release'],
               ':label'     => $data['label'],
               ':catalog'   => $data['catalog'],
               ':date'      => $data['date'],
               ':tracklist' => $data['tracklist'],
               ':type'      => $data['type'],
               ':status'    => $data['status'],
               ':vote'      => 0,
               ':votes_count' => 0);

$query->execute($array);

我收到错误:
警告:PDOStatement::execute()[PDOStatement.execute]:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请检查与MySQL服务器版本对应的手册,以获取在'release、label、catalog、date、tracklist、type、status、vote,投票(count)值'

最佳答案

在mySQL中datetypereserved words
用倒勾围绕字段名:

INSERT INTO `releases` (`id`, `artists`, `release`, `label`, `catalog`,
`date`, `tracklist`, `type`, `status`, `vote`, `votes_count`) ';

或者重新命名。

关于php - 如何在PDo中插入数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3954489/

10-11 02:33
查看更多