gpt4 book ai didi

php - 在代码中组织 MySQL 查询的正确方法?

转载 作者:行者123 更新时间:2023-11-29 04:13:37 27 4
gpt4 key购买 nike

对于具有简单数据库的非常简单的应用程序,我需要一些想法来使我的代码更简洁一些。我有以下想法,但效果不佳。这就是我正在做的:

我在一个页面上有很多查询(占用大量空间并且源代码看起来很乱。我想在另一个 PHP 文件中有一个它们的索引,我可以通过包含调用它。

除了我遇到了一个问题。我在外部 php 页面上有一个看起来像这样的查询。

查询.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 警告() 以及它如何无法连接。当我什至不查询数据库时,我不明白它是如何做到这一点的!

话又说回来,我可以很容易地忽略警告...

我只是不确定我这样做是否正确,在这种情况下,我主要想问问是否有更好的方法,还是我应该忽略警告?

非常感谢您的反馈!提前致谢。

最佳答案

我建议使用参数化查询(例如通过 mysqli 或 PDO)。

如果字符串是查询的参数,则不必对它们进行转义。这既使代码更清晰,也使编写安全代码变得更容易,因为如果您始终使用参数化查询,则留下 SQL 注入(inject)漏洞的可能性要小得多。

关于php - 在代码中组织 MySQL 查询的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3917692/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com