2012-07-16 75 views
1

有人可以解釋爲什麼這個簡單的表格不起作用嗎?mysql真正的轉義字符串什麼也沒有返回

問題是,當我使用mysql_real_escape_string()結果是什麼都沒有,當我把它刪除它完美的作品可以請你看看這裏有什麼錯?

這是完全簡單的代碼,

<?php 

// Loop the post fields 
$postFields = array('username', 'password', 'checkSubmission'); 
$postArray = array(); 
foreach($postFields as $postVal){ 
    $postArray[$postVal] = mysql_real_escape_string($_POST[$postVal]); 
} 
print_r($postArray); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Signin</title> 
<head> 
</head> 
<body><? echo $error;?> 
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" id="signinForm"> 
    Username: <input type="text" name="username" value="" /> 
    Password: <input type="password" name="password" value="" /> 
    <input type="hidden" name="checkSubmission" value="1" /> 
    <input type="submit" name="Submit" value="Signin" /> 
</form> 
</body> 
</html> 

編輯:

print_r()是空的,當我使用mysql_real_escape_string()

Array ([username] => [password] => [checkSubmission] =>) 

這是print_r()沒有mysql_real_escape_string()

Array ([username] => thre[password] => werr[checkSubmission] => 1) 

謝謝你的幫助

+2

你能放的回報 「的print_r($ postArray);」 ? – 2012-07-16 13:58:22

+0

我更新了這個問題,請看看 – itsme 2012-07-16 14:03:10

+3

你連接到你的數據庫了嗎? mysql_real_escape_string只適用於你先連接數據庫的情況。 – 2012-07-16 14:04:48

回答

7

mysql_real_escape_string()需要一個活動的數據庫連接。

從PHP手冊:

一個MySQL連接使用mysql_real_escape_string() 否則產生水平E_WARNING的錯誤之前需要,和FALSE是 返回。如果未定義link_identifier,則使用最後一個MySQL連接 。

http://php.net/manual/en/function.mysql-real-escape-string.php

+0

我使用的是PDO,但這是我的答案題 :) – itsme 2012-07-16 14:12:48