2012-03-25 27 views
-1

Array ([0] => Array ([SubID] => 19 [0] => 19 [RandomCode] => P57bz0y24DdKofbI6M4BqJfDs0QNtL2XpBANnzys [1] => P57bz0y24DdKofbI6M4BqJfDs0QNtL2XpBANnzys [Email] => [email protected] [2] => [email protected] [CreateDate] => 2012-03-25 [3] => 2012-03-25 [UpdateDate] => 0000-00-00 [4] => 0000-00-00 [27_t1] => [5] => [31_asas] => 0 [6] => 0))为什么php中的查询结果与我在phpmyadmin中尝试的不同?

的结果是这样的,但现在我不能

echo $result['Email']; 

为什么是错误得到它?谢谢

+0

你确定'$ set ['Attribute']'='Email'和'$ sub' ='19'? – Shikiryu 2012-03-25 09:43:37

+0

当然,我已经尝试使用一个实际的字符串,而不是变量来测试 – 2012-03-25 09:48:36

+0

'array('Email'','19')'? – Shikiryu 2012-03-25 09:49:54

回答

0
SELECT ? 

不好!

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

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

完成fetchAll()后,然后遍历结果以提取所需的列。

0

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

他选择 “电子邮件” :)不是字段命名的电子邮件

+0

抱歉,您的意思是更改$ stmt-> execute(array($ set ['Attribute'],$ sub));? – 2012-03-25 09:59:00

0

?更改为'Email'(不是反引号)。所以呢:

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

SELECT“。$ set ['Attribute']。'导致解析错误:语法错误,意外的T_STRING在第188行的C:\ xampp \ htdocs \ fyp \ list \ editSub.php上 – 2012-03-25 10:11:11

+0

有引号错误,对不起更正 – 2012-03-25 10:12:11

+0

Array([0] => Array([Email] => [email protected] [0] => [email protected])) – 2012-03-25 10:21:13

相关问题