2013-03-06 82 views
0

我想不通为什么,但是当我运行该脚本,它只是显示$row[0]列,而不是我提出的任何其他列。PHP/MySQL的选择单一对象返回山坳名称,而不是价值

$mlsnum = mysql_real_escape_string($_GET['mlsnum']); 

$link = mysql_connect('localhost','user','password'); 
mysql_select_db('singleprop', $link); 

$query = "SELECT 'MSTLISTPRC' FROM jos_mls WHERE MSTMLSNO = '".$mlsnum."';"; 

$return = mysql_query($query); 

$result = mysql_fetch_array($return); 

$price = $result['MSTLISTPRC']; 

echo $price; 

而不是回显符合WHERE条件的列的值,它回显列名称。

回答

4

删除单引号。它们表示一个文字字符串。

SELECT MSTLISTPRC ... 

A string is a sequence of bytes or characters, enclosed within either single quote (“ ' ”) or double quote (“ " ”) characters. Examples:

'a string'

"another string"

Documentation

您还需要为了调用列名使用一个关联数组:

$result = mysql_fetch_assoc($return); 

另外,请停止使用mysql_功能。他们不再维护and are officially deprecated。请参阅red box?请改为了解prepared statements,并使用PDOMySQLi - this article将帮助您决定哪个。

+0

当我这样做,我没有得到它应该显示的价值,我只得到'0'。我可以通过PHPmyAdmin验证值应该是什么,并且查询的$ mlsnum值是正确的。 – Plummer 2013-03-06 21:07:54

+0

@tPlummer print_r($ result);你会明白为什么。 – 2013-03-06 21:09:27

+0

@tPlummer看我的更新。您需要使用关联数组。 – Kermit 2013-03-06 21:09:47

1

除去周围“MSTLISTPRC”引号=问题解决

0

对于选择列你不使用引号。我们使用“`”字符

+2

没有。如果列名是保留字,则只能使用反引号。否则他们只是额外的绒毛。 – 2013-03-06 21:06:39

+0

你的权利,但是当你确定你的列名被保留或者没有保留时,总是使用反引号并没有什么坏处 – MIIB 2013-03-06 21:08:59

+0

@MIIB有些人不喜欢额外的绒毛 – Kermit 2013-03-06 21:16:51

0

change $ query =“SELECT'MSTLISTPRC'FROM jos_mls WHERE MSTMLSNO ='”。$ mlsnum。“';”; 到 $ query =“SELECT`MSTLISTPRC` FROM jos_mls WHERE MSTMLSNO ='”。$ mlsnum。“';”;

相关问题