我需要一些想法,使我的代码更清洁一个简单的数据库一个非常简单的应用程序。我有以下想法,但它不能很好地工作。这是我在做什么:在代码中组织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