我是數據庫新手,我寫了很多PHP代碼來訪問使用MySQL的數據庫。將常規mysql轉換爲預處理語句
我沒有考慮到SQL注入攻擊,所以我不得不重新編寫所有的PHP代碼使用mysql準備語句。
看如何使用準備SQL語句的視頻後,執行只有一個SQL命令需要一大堆的「準備」語句。我現有的代碼在各處都有許多不同的SQL語句,更改所有代碼打包並解壓每個「準備」語句命令的所有必需準備工作將是一場噩夢。
是否有某種包裝的,我可以用它來防止轉向常規的SQL的一行到6個或7行預處理語句?
例如用做SQL
SELECT * from users where userid=10
需要準備的SQL語句的更多的線這條線行,尤其是如果有很多其他的SQL語句太現在變得非常複雜。
是否有某種單行包裝,我可以調用它接受模板SQL字符串,再加上參數,它還執行命令並返回結果只包含一行包裝爲不同類型的MYSQL語句它會很好,代碼會更容易混淆,而且容易出錯。
例如
$users=WrapAndExecute($db,"SELECT * from users where userid=?","s",$userid);
$data=WrapAndExecute($db,"UPDATE table SET username=?,city=?","ss",$name,$city);
$result=WrapAndExecute($db,"DELETE from table where id=?","s",$userid);
$result=WrapAndExecute($db,"INSERT into ? (name,address) VALUES(?,?)","ss","users",$name,$address);
每個上面的那些行會創建一個準備好的報表模板,做綁定,執行它並返回結果,一個普通MYSQL語句會。這會對現有代碼產生最小的影響。
任何人知道如何做到這一點,或者一些簡單的PHP庫或類已經存在要做到這一點,那我就可以導入並開始使用它?
感謝
我不知道你在問什麼,但有疑問,這裏是[PDO :: prepare](https://secure.php.net/manual/en/pdo.prepare.php)PHP文檔。 – Artemis
對不起,我沒有提供足夠的信息,我只是更新了我原來的帖子,感謝您的評論 – Programmer2
_需要更多的準備好的SQL語句行_:更多的行,給出更好,更安全的代碼恕我直言。並沒有那麼多,這很容易閱讀/理解/維護...我沒有看到**任何理由**爲什麼一個人不會出汗一點(很多?)有一些好/優秀的代碼^^ – OldPadawan