我有一個函數可以更新表中的一行,查詢在硬編碼電子郵件值時起作用,但是當我想將值作爲$_SESSION
發送時,我也不會有任何錯誤。
我的工作查詢:
function profile_name($profile_name){
$profile_name = mysql_real_escape_string(htmlentities($profile_name));
mysql_query("UPDATE user SET user_name = '{$profile_name}' WHERE user_email = '[email protected]' ");
}
當我送[email protected]
作爲會議用下面的代碼:
(isset($_POST['profile'], $_POST["{$_SESSION['email']}"])){ }
function profile_name($profile_name, $email){
$profile_name = mysql_real_escape_string(htmlentities($profile_name));
mysql_query("UPDATE user SET user_name = '{$profile_name}' WHERE user_email = '{$email}' ");
}
沒有任何反應。
如果我回聲出會話$_SESSION['email']
它打印[email protected]
在新代碼[請不要使用'mysql_ *'功能(http://stackoverflow.com/q/12859942/1190388) 。他們不再被維護,並[正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到紅色框?改爲了解準備好的語句,然後使用[tag:PDO]或[tag:MySQLi]。 – hjpotter92
你的函數是否被調用?你檢查了嗎?會話與MySQL有什麼關係? – maksimov
@maksimov是的,如果我寫這樣的功能正在工作。 ($ profile_name,$ email){ function profile_name($ profile_name,$ email){ \t $ profile_name = mysql_real_escape_string(htmlentities($ profile_name)); \t mysql_query(「UPDATE user SET user_name ='{$ profile_name}'WHERE user_email ='my @ email'」); } 它更新我的user_name行。但不是當我發送$ _session – Dymond