knk*_*rfl 2 php mysql pdo insert
我使用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();
Run Code Online (Sandbox Code Playgroud)
但数据不会插入数据库.所有名称都已检查且有效.id为AUTO_INCREMENT字段.
如果我使用这段代码:$ this-> db-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_WARNING); $ sql ='INSERT INTO releases(艺术家,发行,标签,目录,日期,跟踪列表,类型,状态,投票,投票_count)'; $ sql.='VALUES(:artists,:release,:label,:catalog,:date,:tracklist,:type,:status,:vote,:votes_count)';
$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);
Run Code Online (Sandbox Code Playgroud)
我收到错误:
警告:PDOStatement :: execute()[pdostatement.execute]:SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册,以便在C:\ Program Files\Wamp \中的第1行"版本,标签,目录,日期,跟踪列表,类型,状态,投票,投票数量"附近使用正确的语法第89行的www\forthcoming\application\controllers\release.php
date并且type是mySQL 中的保留字.
用反引号围绕字段名称:
INSERT INTO `releases` (`id`, `artists`, `release`, `label`, `catalog`,
`date`, `tracklist`, `type`, `status`, `vote`, `votes_count`) ';
Run Code Online (Sandbox Code Playgroud)
或重命名他们.
| 归档时间: |
|
| 查看次数: |
6740 次 |
| 最近记录: |