亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在多用戶網站中使用預準備語句?

如何在多用戶網站中使用預準備語句?

PHP
MM們 2022-08-05 15:26:30
在(代碼中)將預準備語句的元素放置在許多用戶與數據庫交互的網站上的位置?我正在將我的代碼從使用轉換為使用預準備語句,因為人們說這是防止sql注入的更好方法。$mysqli->escape_string它只是簡單地刪除所有s并替換我的代碼的其他部分,如下所示:$mysqli->escape_string$mysqli->query("update `users` set `email`='$newEmail' where `userid`={$_SESSION['userid']} limit 1");替換為:$stmt = $mysqli->prepare("update `users` set `email`=? where `userid`=? limit 1");$stmt->bind_param('si',$newEmail,$_SESSION['userid']);$stmt->execute();$stmt->close();?人們說預準備的語句更有效,因為語句模板只準備一次,然后可以使用不同的參數重新使用。但是在上面的代碼替換中,每次任何用戶想要更新其電子郵件地址時,都不會進行模板準備嗎?我應該在服務器啟動時準備所有語句嗎?不要再讓他們做好準備了嗎?(雖然我不知道該怎么做。應該在我網站的代碼中將 放置在哪里?preparebind_paramclose
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

它只是簡單地刪除所有$mysqli>escape_strings,并用占位符替換變量

是的。

人們說預準備的語句更有效,因為語句模板只準備一次,然后可以使用不同的參數重新使用。

忘掉它吧。無法在請求之間重用預準備語句。

它僅在語句變量中工作,因此僅適用于單個 PHP 實例。意味著您只能將其用于重復插入/更新。即使在那里,增益也不是顯著的。

這更像是一種營銷技巧,而不是一個真正有用的功能。


查看完整回答
反對 回復 2022-08-05
  • 1 回答
  • 0 關注
  • 109 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號