设置 | 登录 | 注册

作者共发了64篇帖子。

今天我来系统地学习一下PDO

32楼 巨大八爪鱼 2015-5-30 21:22

回复:31楼

非变量可以直接写入SQL语句

33楼 巨大八爪鱼 2015-5-30 21:28
不过这样的话,就无法得到生成的SQL字符串了。。。
34楼 巨大八爪鱼 2015-5-30 21:30
$address = "Delaware St";

$sql = "SELECT * FROM WiFiHotSpots WHERE ItemName = ? AND ItemID < 15 AND ItemAddress = ?";
$stmt = $dbh->prepare($sql);
$stmt->execute(array($name, $address));
$row = $stmt->fetch();
echo "(" . $row["ItemLatitude"] . ", " . $row["ItemLongitude"] . ")";
35楼 巨大八爪鱼 2015-5-30 21:38
判断记录集是否为空:
if (!$stmt->rowCount()) {
  echo "记录集为空";
}
36楼 巨大八爪鱼 2015-5-30 21:39
$stmt->rowCount()可以直接当布尔值用。
37楼 巨大八爪鱼 2015-5-30 21:41
原始方法:
if (mysql_num_rows($rs) == 0) {
echo "记录集为空";
}
38楼 巨大八爪鱼 2015-5-30 21:46
回复:33楼
http://php.net/manual/en/pdostatement.debugdumpparams.php
debugDumpParams可以用来输出SQL及其参数,但是无法产生目标SQL。

39楼 巨大八爪鱼 2015-5-30 21:49
Error SQL query:

SELECT * FROM WiFiHotSpots WHERE ItemName = ? AND ItemID < 15 AND ItemAddress = ? LIMIT 0, 25
MySQL said:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '? AND ItemID < 15 AND ItemAddress = ?
LIMIT 0, 25' at line 1
40楼 巨大八爪鱼 2015-5-30 22:07
bindColumn的用法:
<?php
include_once("conn.php");

$sql = "SELECT * FROM WiFiHotSpots";
$stmt = $dbh->prepare($sql);
$stmt->execute();

$stmt->bindColumn("ItemSuburb", $suburb);
foreach ($stmt as $row) {
    echo $suburb . "<br>";
    // $suburb is equivalent to $row["ItemSuburb"]
}
?>
41楼 巨大八爪鱼 2015-5-30 22:08
bindColumn将一个字段绑定到一个php变量中,也就是每次循环自动执行:
$suburb = $row["ItemSuburb"]

内容转换:

回复帖子
内容:
用户名: 您目前是匿名发表。
验证码:
看不清?换一张
©2010-2025 Purasbar Ver3.0 [手机版] [桌面版]
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。