2011-03-22 77 views
0

我在使用MYSQl select语句时遇到困难。是否有可能在正确值匹配的情况下返回值。例如。我有一张桌子。php mysql select statment

id | 1 | 2 | 3 | etc. <--- COLUMNS 
1 | Value | Value | Value | etc. 
2 | Value | Value | etc.. 
3 | Value | Value | 
4 | Value | Value | 
5 | Value | Value | etc... 

我正试图通过PHP来查询数据库以返回值。

$id = 3; 
$inputvalues = "SELECT 'column' 
FROM `DB` 
WHERE `id` = $id 
"; 

$return = mysql_query($inputvalues, $connection); 


while ($r = mysql_fetch_array($return)){ 
$r[0]; 
echo "$loc = $row[3]<br />"; 

我认为在理论上这应该工作,但是所有的返回值的回来是空的?

这可能吗?

+0

这应该是可能的,发表您的实际的代码,我们可能会提供帮助。现在不可能帮助你。 此外,大概你有'DB'你的意思是'表' – 2011-03-22 01:09:23

回答

2

你不应该在列名周围使用单引号('),你可以使用反引号(`)。

SELECT column 
FROM `DB` 
WHERE `id` = '$id' 

SELECT `column` 
FROM `DB` 
WHERE `id` = '$id' 

放在一起:

$id = 3; 
$sql = "SELECT column 
     FROM `DB` 
     WHERE `id` = '$id'"; 

$return = mysql_query($inputvalues, $connection); 

while ($r = mysql_fetch_array($return)) { 
    print_r($r); 
} 
+0

不需要单引号围绕整数。 – 2011-03-22 01:12:57

+0

@ggregoire,数字值附近的引号不是必需的,但最好避免输入(缺少)某些问题。 – Czechnology 2011-03-22 01:15:36

+0

对不起,我没有在我的代码中添加select列实际上是一个可变数字。这可能是我的问题,因为它可能试图搜索'$ loc'字符串。 – Christopher 2011-03-22 01:17:16

0

您是否尝试过在一个数据库编辑器,如MySQL工作台查询?

您的查询应该如下所示:

"SELECT column FROM DB WHERE id = '$id'" 

则必须用单引号的价值,而不是周围的列名。

0

如果你的列是动态加载不要在PHP中使用可变左右引号

$id = 3; 
$sql = "SELECT {$column} 
     FROM `DB` 
     WHERE `id` = '$id'"; 

好像变量名不与实际值替换查询