function add($musicObj)
{
$pdo = $this->createPDO(); //$pdo已经用查询验证过,没有问题
$pdo->query("set names utf8");
$sql = "insert into [musics] ([name],[story],[image],[music],[add_date],[vote_count]) values (?,?,?,?,?,?)";
$statement = $pdo->prepare($sql);
$statement->execute(array($musicObj->name,$musicObj->story,$musicObj->image,$musicObj->music,$musicObj->add_date,$musicObj->vote_count));
echo $pdo->errorCode() //00000
}
问题:表里面没有写入数据。
{
$pdo = $this->createPDO(); //$pdo已经用查询验证过,没有问题
$pdo->query("set names utf8");
$sql = "insert into [musics] ([name],[story],[image],[music],[add_date],[vote_count]) values (?,?,?,?,?,?)";
$statement = $pdo->prepare($sql);
$statement->execute(array($musicObj->name,$musicObj->story,$musicObj->image,$musicObj->music,$musicObj->add_date,$musicObj->vote_count));
echo $pdo->errorCode() //00000
}
问题:表里面没有写入数据。
是不是没有insert的权限?
2.不建议把pdo的数据库操作封装成类或者函数,pdo本身就已经是个很面向对象的php扩展了,在php代码里再封装一次反而会失去pdo的灵活性和代码的可读性,在调试查错时也很繁琐;
3.表是否有外键约束等原因导致插入失败,用pdo的errorInfo()方法输出一下错误信息数组看看。
字符类型的加引号,
数值的不能加。
但,都能加“·”
$sql = "INSERT INTO `musics` (`name`,`story`,`image`,`music`,`add_date`,`vote_count`) VALUES (?,?,?,?,?,?)";
执行的结果是Array ( [0] => 00000 ) ,说是成功了,但是表里面就是没有数据。
mysql> desc musics;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(100) | YES | | NULL | |
| story | varchar(500) | YES | | NULL | |
| image | varchar(50) | YES | | NULL | |
| music | text | YES | | NULL | |
| add_date | int(11) | YES | | NULL | |
| vote_count | int(11) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
$pdo->beginTransaction();
$pdo->query("set names utf8");
$sql = "INSERT INTO `musics` (`name`,`story`,`image`,`music`,`add_date`,`vote_count`) VALUES (?,?,?,?,?,?)";
$statement = $pdo->prepare($sql);
$r = $statement->execute(array($musicObj->name,$musicObj->story,$musicObj->image,$musicObj->music,$musicObj->add_date,$musicObj->vote_count));
$pdo->commit();
var_dump($r);
var_dump($pdo->errorInfo());
---------------------------结果如下--------------
bool(false) array(1) { [0]=> string(5) "00000" }
exit;