【发布时间】:2013-03-19 09:03:31
【问题描述】:
我很难理解我刚刚完成的教程中的$conn。它来自 Tutsplus PHP 基础课程。
我得到了以下代码:
<?php
require 'config.php';
$letter = 'J%';
try {
$conn = new PDO('mysql:host=localhost; dbname=practice', $config['DB_USERNAME'], $config['DB_PASSWORD']);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Switch to turn on error modes with errors displayed
$stmt = $conn->prepare('SELECT * FROM users WHERE username LIKE :placeholder');
$stmt->bindParam('placeholder', $letter, PDO::PARAM_INT);
$stmt->setFetchMode(PDO::FETCH_OBJ);
$stmt->execute();
while($row = $stmt->fetch()) {
print_r($row);
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
我了解:placeholder 部分。我不太了解的部分尤其是这一行中的$conn:
$stmt = $conn->prepare('SELECT * FROM users WHERE username LIKE :placeholder');
如果我现在理解->,这意味着我们将变量$conn 传递给函数prepare() 并将结果存储在$stmt 中。我没有得到的是$conn 当前从 PDO 连接中持有的内容。我尝试做print $conn;,但返回一个错误。
【问题讨论】:
-
$conn是一个对象,->表示“调用方法”,所以$conn->prepare表示在对象$conn上使用括号中的参数调用方法prepare -
$conn是一个PDO类/对象,其中包含一个方法/函数prepare()。 -
感谢@YourCommonSense 刚刚从另一个“问题”中阅读了
->。更有意义,并引导我阅读其他一些内容。