2011-03-03 22 views
1

我如何處理這樣的事情:

"SELECT skills FROM jobs WHERE profession = $user['profession']" 

,其中行業是一個字符串...

+0

mysql_real_escape_string()? – benhowdle89 2011-03-03 10:15:02

+0

什麼類型是「職業」的? – alexn 2011-03-03 10:15:58

+0

'@ alexn' Haroldo寫道它是一個字符串。 – hsz 2011-03-03 10:17:35

回答

3

只需使用

"SELECT skills FROM jobs WHERE profession = '{$user['profession']}'" 

PHP允許你混合引號像

注意假設所有的安全檢查和v alidations是此位

+0

啊,永遠不知道你能做到這一點! – Haroldo 2011-03-03 10:18:10

+1

很酷。只是爲了重申。 **請在將它們放入查詢**之前清理您的字符串。至少,'mysql_real_escape_string' – JohnP 2011-03-03 10:21:58

+1

哈哈,是的,我已經得到了驗證消毒這一階段前發生的負荷。正如一些人所建議的那樣,我開始在實際查詢內部進行完善,似乎是心理上的混亂。 – Haroldo 2011-03-03 10:24:30

0
$profession = mysql_real_escape_string($user['profession']); 
$query = 'SELECT skills FROM jobs WHERE profession = "' . $profession . '"'; 
+0

我不想消毒,只是插入一個數組值,而沒有對var進行反應 – Haroldo 2011-03-03 10:17:54

2

之前,如果你不需要mysql_real_escape_string()只是刪除它做的另一種替代方法

"SELECT skills FROM jobs WHERE profession = 
'".mysql_real_escape_string($user['profession'])."'"; 

"SELECT skills FROM jobs WHERE profession ='".$user['profession']."'"; 
+0

我錯過了什麼,爲什麼大家都告訴我在我的查詢中加入'mysql_real_escape_string()'!!!? – Haroldo 2011-03-03 10:19:31

+0

@Haroldo如果不需要該功能檢查更新答案 – 2011-03-03 10:21:38

+1

@Haroldo他們不告訴你,你必須把它在確切的地方,他們只是提醒你mysql_escape每次你把東西在查詢時間。他們提醒所有其他人有相同的問題,並在稍後找到此線程。 – kapa 2011-03-03 10:34:48