2013-07-31 21 views
0

是否有任何mysql語法來阻止查詢被用戶輸入追加?如果查詢是否有這樣的mysql語法來結束/限制mysql查詢?

SELECT * 
    FROM `username` 
    WHERE `type` = 'client' 
    END/LIMIT/whatever syntax here; 

查詢應在'client'停止,所以如果用戶試圖通過添加OR像這樣添加自己的查詢:

SELECT * 
    FROM `username` 
    WHERE `type` = 'client' 
    OR 1 = 1; 

將無法​​正常工作。提前致謝。

回答

0

我會假設你正在使用PHP,並且'client'是通過用戶的$ _POST作爲參數接收的。在這種情況下,我認爲你想要做的就是防止SQL注入。如果是這樣你應該使用mysql_real_escape_string()來淨化你的輸入參數,解決它:

// This could be supplied by a user, for example 
$type = $POST['type']; 

// Formulate Query 
// This is the best way to perform an SQL query 
// For more examples, see mysql_real_escape_string() 
$query = sprintf("SELECT * FROM username 
    WHERE type='%s', 
    mysql_real_escape_string($type)); 

// Perform Query 
$result = mysql_query($query); 

... 

我把這個樣本從mysql-query reference和適應它爲您的需求。

+0

感謝您的回覆。是的,這是PHP。 – sg552