2011-11-18 71 views
-4

您是否可以執行以下操作?使用SQL查詢

$query = "SELECT username, first_name, last_name, gender, 
        birthdate, city, state, picture, user_id 
       FROM mismatch_user 
      WHERE user_id = '" . $_SESSION['user_id'] . "'"; 
+0

與此有什麼問題:

$query = "SELECT username, first_name, last_name, gender, birthdate, city, state, picture, user_id FROM mismatch_user WHERE (user_id = '".mysql_real_escape_string($user_id)."') "; 

做這個查詢,你需要包括這種因此它承認$ USER_ID之前? –

+3

否 - 它會導致我們所知道的世界末日 - 請停止! –

回答

1

我將與此一起去:爲什麼不:-)?

如果您遇到一些問題或例外情況,我們需要一些背景來展示您的代碼。

2

真正的問題是你在做什麼?總之YES

如果你想運行具有隻是那麼查詢NO單獨不會,你首先需要連接到數據庫

mysql_connect('host', 'user', 'pass'); 

選擇一個數據庫運行鍼對

mysql_select_db('database'); 

查詢然後你就可以使用下面的代碼運行查詢,但你應該使用sprintf()mysql_real_escape_string()構建查詢值出於幾個原因。

1)它會阻止不必要的數據進入查詢,只允許某些類型的數據,在這種情況下,%d引用一個帶符號的int,因此只允許一個數字。

2)使用sprintf()mysql_real_escape_string()將有助於防止SQL注入攻擊。

$query = sprintf("SELECT username, first_name, last_name, gender, birthdate, city, state, picture, user_id 
        FROM mismatch_user 
        WHERE user_id = %d", mysql_real_escape_string($_SESSION['user_id'])); 

$result = mysql_query($query); 

while ($row = mysql_fetch_assoc($result)) { 
    echo $row['first_name']; 
    echo $row['last_name']; 
} 
3

我在我的項目上做過這樣的事情。爲了得到它才能正常工作試試這個:

foreach (array('user_id') as $varname) { 
     $user_id = (isset($_POST[$varname])) ? $_POST[$varname] : ''; 
     }