[英]Converting mysql_* to mysqli_* issue
我正在使用MySQLConverterTool
轉換我的Web應用程序,
我面臨的第一個問題是代碼變得越來越大,我什至不明白那意味着什么? 以前這是非常小的代碼,現在我看到這太大了。
//old code
$ask_id = mysql_real_escape_string($_POST['ask_id']);
//after convert
$ask_id = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $_POST['ask_id']) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
它的工作正常,但我想知道它是mysqli_*
正確方法還是需要在線解決一些問題或錯誤?
我也想知道如何使這部分安全
if (isset($_POST['asking-money'])) {
$dailyBonus = 10000;
$update = mysqli_query($GLOBALS["___mysqli_ston"], "UPDATE users SET ask_time='$newtime', bonus='dailyBonus' WHERE id='$userid'");
// some more calculation
}
代碼的第一位(粗略地)看起來像添加了一條巨大的三元語句,以檢查所使用的變量是否至少已設置,但除此之外,您應該只能使用:
mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $_POST['ask_id'])
為了確保SQL查詢的安全性,請嘗試使用預處理語句,而不要直接使用變量查詢
對於mysqli_ *部分,以前用mysql_ *完成的大多數事情都與新前綴幾乎相同,因此,很可能沒有問題,並且如何確保它的安全,只需評估並准備所有內容即可。在查詢中使用用戶之前傳遞給用戶的參數,換句話說,在任何情況下都從不直接在查詢中使用用戶輸入。 除此之外,代碼對我來說似乎還不錯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.