为什么php中的查询结果与我在phpmyadmin中尝试的结果不同?

时间:2012-03-25 09:39:24

标签: php mysql pdo

  

数组([0] =>数组([SubID] => 19 [0] => 19 [RandomCode] =>   P57bz0y24DdKofbI6M4BqJfDs0QNtL2XpBannzys [1] =>   P57bz0y24DdKofbI6M4BqJfDs0QNtL2XpBannzys [电子邮件] => as@sasa.com [2] =>   as@sasa.com [CreateDate] => 2012-03-25 [3] => 2012-03-25 [UpdateDate]   => 0000-00-00 [4] => 0000-00-00 [27_t1] => [5] => [31_asas] => 0 [6] => 0))

现在的结果是这样,但我无法通过

获得
echo $result['Email'];

为什么会出错?谢谢

3 个答案:

答案 0 :(得分:0)

SELECT   ? 

不好!

您选择的列的列表不应该是绑定变量,因为(作为字符串值)它将被括在引号而不是反引号中。然后,MySQL会将其视为一个简单的引用字符串,并返回引用的字符串('Email'),而不是它返回的每条记录所需的实际列。

不要绑定列名。使用SELECT *,只是WHERE子句中SubID值的一个绑定变量。

当你完成fetchAll()时,然后遍历结果,提取你想要的列。

答案 1 :(得分:0)

您的结果显示[电子邮件] =>电子邮件意味着,MySQL收到SELECT 'Email' from subscriber WHERE SubID='19'

他选择“电子邮件”:)而不是名为电子邮件

的字段

答案 2 :(得分:0)

?更改为'Email'(不是反对)。所以:

$sql = '
   SELECT   ' . $set['Attribute'] . '
   FROM     subscriber
   WHERE    SubID=?
';
$stmt = $conn->prepare($sql);
$stmt->execute(array($sub));