嘿,我有这个表结构:
使用这段代码,我想获取三个变量中的 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/