我需要一些想法,使我的代碼更清潔一個簡單的數據庫一個非常簡單的應用程序。我有以下想法,但它不能很好地工作。這是我在做什麼:在代碼中組織MySQL查詢的正確方法?
我在頁面上有很多查詢(佔用大量的空間和源代碼看起來凌亂。我想有一個他們在另一個PHP文件,我可以調用索引通過包括
除了我遇到了一個問題,我有一個查詢,看起來像這樣的外部PHP頁面上
Queries.php:。
$RegisterQuery = sprintf("INSERT INTO `testdb`.`users` (
`user_id`,
`username`,
`password`,
`First Name`,
`Last Name`,
`email`)
VALUES (
NULL,
'%s',
'%s',
'%s',
'%s',
'%s'
);",
mysql_real_escape_string($username),
mysql_real_escape_string($password),
mysql_real_escape_string($first_name),
mysql_real_escape_string($last_name),
mysql_real_escape_string($email));
這樣做的問題是,即使我沒有用mysql_query()
查詢$RegisterQuery
它拋出一堆關於使用mysql_real_escape_string()
以及無法連接的MySQL警告。當我甚至不查詢數據庫時,我不明白它是如何做到這一點的!
話又說回來,我可以很容易忽略這些警告...
我只是不知道我在做正確這個在這種情況下,我主要是想詢問是否有這樣做還是應該更好的方法我只是忽略了警告?
您的反饋非常感謝!提前致謝。
+1每次調用mysql_real_escape_string都是數據庫服務器上的命中。參數化查詢是標準解決方案。 – 2010-10-12 18:26:17
我可以在哪裏瞭解有關參數化查詢的更多信息?我會誠實地說,我從來沒有聽說過他們。谷歌搜索幾乎沒有返回。 =( – Tek 2010-10-12 18:51:19
@Tek:檢查出http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php – 2010-10-12 18:58:12