2011-11-18 118 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] : ''; 
     }