 |
54樓
巨大八爪鱼
2015-5-31 08:58
$sql = "INSERT INTO `timetest` VALUES (null, NOW())"; $successful = $dbh->exec($sql); if ($successful) { echo "插入记录成功"; }
|
 |
55樓
巨大八爪鱼
2015-5-31 08:59
回复:54楼 这段代码如果改写成mysql原来的代码,就很复杂,除了执行mysql_query($sql),还需要执行mysql_affected_rows() 因为对于插入、删除、修改的SQL语句,mysql_query始终返回true
|
 |
56樓
巨大八爪鱼
2015-5-31 09:03
PDO::query() returns a PDOStatement object, or FALSE
on failure. query主要用于SELECT语句,返回PDOStatement对象
|
 |
57樓
巨大八爪鱼
2015-5-31 09:14
$content = join(", ", PDO::getAvailableDrivers()); if (!empty($content)) { $sql = "INSERT INTO Contents (Content, TimeCreated) VALUES (:content, NOW())"; $stmt = $dbh->prepare($sql); $stmt->bindParam(":content", $content); $successful = $stmt->execute(); if ($successful) { $num = $stmt->rowCount(); echo "插入了{$num}条记录。"; } else { echo "插入记录失败!"; } } else { echo "没有内容"; }
|
 |
58樓
巨大八爪鱼
2015-5-31 09:17
$content = join(", ", PDO::getAvailableDrivers()); if (!empty($content)) { $sql = "SELECT * FROM Contents WHERE Content = ?"; $stmt = $dbh->prepare($sql); $stmt->execute(array($content)); if ($stmt->rowCount()){ echo "数据表中已经有相同的内容了。"; } else { $sql = "INSERT INTO Contents (Content, TimeCreated) VALUES (:content, NOW())"; $stmt = $dbh->prepare($sql); $stmt->bindParam(":content", $content); $successful = $stmt->execute(); if ($successful) { $num = $stmt->rowCount(); echo "插入了{$num}条记录。"; } else { echo "插入记录失败!"; } } } else { echo "没有内容"; }
|
 |
59樓
巨大八爪鱼
2015-5-31 09:19
bindValue的用法 $sql = "SELECT * FROM Contents WHERE Content = ?"; $stmt = $dbh->prepare($sql); $stmt->bindValue(1, $content); $stmt->execute();
|
 |
60樓
巨大八爪鱼
2015-5-31 09:24
对于$stmt->queryString这个属性,输出内容如下: INSERT INTO Contents (Content, TimeCreated) VALUES (:content, NOW()) 也就是语句中仍然没有包含具体的值。
if ($successful) { $num = $stmt->rowCount(); echo "插入了{$num}条记录。<br>"; echo $stmt->queryString; } else { echo "插入记录失败!"; }
|
 |
61樓
巨大八爪鱼
2015-5-31 09:28
$dbh->beginTransaction(); $content = "数据表中已经有相同的内容了。"; if (!empty($content)) { $sql = "SELECT * FROM Contents WHERE Content = ?"; $stmt = $dbh->prepare($sql); $stmt->execute(array($content)); /*$stmt->bindValue(1, $content); $stmt->execute();*/ if ($stmt->rowCount()){ echo "数据表中已经有相同的内容了。"; } else { $sql = "INSERT INTO Contents (Content, TimeCreated) VALUES (:content, NOW())"; $stmt = $dbh->prepare($sql); $stmt->bindParam(":content", $content); $successful = $stmt->execute(); $dbh->rollBack(); echo "rollback"; /*if ($successful) { $num = $stmt->rowCount(); echo "插入了{$num}条记录。"; //echo $stmt->queryString; } else { echo "插入记录失败!"; }*/ } } else { echo "没有内容"; }
|
 |
62樓
巨大八爪鱼
2015-5-31 09:30
发现一个严重的问题,虽然rollback了,但是AUTO_INCREMENT却增加了!!!!
|
 |
63樓
巨大八爪鱼
2015-5-31 09:31
|