2013-06-19 17 views
0

我看起來大部分在Stackoverflow上添加多個WHERE實例,但它們都不起作用。PHP:MySQL選擇與多個地方

我的選擇查詢:

$result = mysql_query("SELECT * FROM $tableName WHERE user = $user AND column = 1");   //query 

我試圖和其他一些方法,但我不知道爲什麼它不會得到列。如果我拿出用戶專欄它的作品,但我希望它也限制在列。以及

任何幫助將不勝感激!

+2

$結果= mysql_query( 「SELECT * FROM $ TABLENAME WHERE用戶= '$ USER' 和列= 1」); - 這應該有效,但我不建議你使用它。這不是一個安全的選擇。看看準備好的聲明:http://php.net/manual/en/pdo.prepared-statements.php –

+0

**和**是你所需要的。 – tomexsans

+0

'$ tableName'和'$ user'的值是多少? –

回答

2

column是保留字mysql。你必須使用`周圍那種列名,並使用字符串周圍單'引號數據'$user'

SELECT * FROM $tableName WHERE user = '$user' AND `column` = 1 
+1

是的,這裏是正確的答案,你也可以在用戶周圍添加單引號?大聲笑你已經做到了,+1 –

+1

謝謝! :)我做了兩個表字段,所以'user' ='$ user'和'column' ='1'。它的工作原理,感謝您的提示和解釋! – designtocode

0

您需要將用戶名用單引號&包裹,如Yogesh列中提到的那樣,列是MySQL中的保留關鍵字。試試這個:

user = '$user' AND `column` = 1 

所以整個語句變成:

$result = mysql_query("SELECT * FROM $tableName WHERE user = '$user' AND `column` = 1"); 

此外,你應該使用庫MySQLi或PDO預處理語句來代替。

0

重寫查詢。使用下面的代碼:

$result = mysql_query("SELECT * FROM `".$tableName."` WHERE user = '".$user."' AND `column` = 1"); 

在這裏,我想念的是什麼是列中的查詢是它的列的名稱? 你需要在`直到標記中給出單個配額和表名中的值。

0

嘗試這一個:

$sql = 'SELECT * FROM $tableName WHERE user = "'.$user.'" AND `column` = 1';