Php/Pdo - 获取每一行的内容

标签 php mysql sql pdo

嘿,我有这个表结构:

enter image description here

使用这段代码,我想获取三个变量中的 id、用户名和点击次数:

$stmt = $dbh->prepare("SELECT username FROM tracker WHERE username='".$data."'");
$stmt->execute();

$row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
$id = $row['0'];
$username = $row['1'];
$clicks = $row['2'];

我的结果:

$id // slkdflskdfskd
$username // null
$clicks // null

我的问题,为什么?我做错了什么?..

最佳答案

您只检索用户名列。

$stmt = $dbh->prepare("SELECT username FROM tracker WHERE username='".$data."'");

您应该更改它以包括您要使用的所有列:

$stmt = $dbh->prepare("SELECT id, username, clicks FROM tracker WHERE username='".$data."'");

另外,如果你想工作得更干净一些,你应该获取一个关联的数组。这样您就可以按列名寻址您的 $row

改变

$row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);

$row = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_LAST);

然后您可以从您的行中选择列,例如:

$row['username'] //slkdflskdfskd

关于Php/Pdo - 获取每一行的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22822530/

相关文章:

mysql - 即使编辑 php.ini 后,更改 max_allowed_pa​​cket 也不起作用

mysql - MySQL 中何时使用单引号、双引号和反引号

mysql - 如何比较 SQL 中的 2 行并查看是否相同的 ID Like 彼此匹配?

php - 种子洗牌可以逆转吗?

php - 将字段添加到选项页面

php - SQL IF 语句与 PHP 变量

c# - 在 C# 的 SQL 语句中使用局部变量值

php - 选择大于当前日期的日期

PHP、Mysqli、SQL查询获取值并显示其他

mysql - 需要帮助优化一个 sql 语句与几个 "field IN (subselect)"或在一起