如何读取fetch(PDO :: FETCH_ASSOC);

PHP*_*DEV 19 php pdo

我正在尝试使用PHP构建一个Web应用程序,我正在使用memcached来存储来自数据库的用户数据.

例如,假设我有这个代码:

 $sql    = "SELECT * FROM users WHERE user_id = :user_id";
$stmt   = $this->_db->prepare($sql);
$result = $stmt->execute(array(":user_id" => $user_id));
$user   = $stmt->fetch(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)

我不确定如何读取$user变量并从中获取数据.我需要能够阅读电子邮件和密码列.

我希望有人能向我解释这是如何运作的.

谢谢

Geo*_*ins 39

PDOStatement :: fetch从结果集中返回一行.该参数PDO::FETCH_ASSOC告诉PDO将结果作为关联数组返回.

数组键将匹配您的列名称.如果您的表包含"email"和"password"列,则数组结构如下:

Array
(
    [email] => 'youremail@yourhost.com'
    [password] => 'yourpassword'
)
Run Code Online (Sandbox Code Playgroud)

要从"电子邮件"列中读取数据,请执行以下操作:

$user['email'];
Run Code Online (Sandbox Code Playgroud)

并为'密码':

$user['password'];
Run Code Online (Sandbox Code Playgroud)


Ben*_*cot 13

像任何其他关联数组一样循环遍历数组:

while($data = $datas->fetch( PDO::FETCH_ASSOC )){ 
     print $data['title'].'<br>'; 
}
Run Code Online (Sandbox Code Playgroud)

要么

$resultset = $datas->fetchALL(PDO::FETCH_ASSOC);

echo '<pre>'.$resultset.'</pre>';
Run Code Online (Sandbox Code Playgroud)


小智 8

方法

$user = $stmt->fetch(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)

返回一个字典。您可以简单地获取电子邮件和密码:

$email = $user['email'];
$password = $user['password'];
Run Code Online (Sandbox Code Playgroud)

其他方法

$users = $stmt->fetchall(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)

返回一个列表一个的字典

  • “关联数组”是“字典”的正确词:) (3认同)
  • 鉴于我们专门讨论 PHP,术语“list”和“dictionary”完全且明确不正确。PHP 既没有列表也没有字典。它有数组和关联数组。 (3认同)