PHP:使用字符串参数时 SQL 语句中的问题

标签 php mysql

$befal = mysql_query("SELECT * FROM users WHERE username = $_GET[username]");
$rad = mysql_fetch_assoc($befal);

等于

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\profile.php on line 4

I have a user called Admin in the field username and it still dont work. profile.php?user=Admin...

This works if I use the ID though:

$befal = mysql_query("SELECT * FROM users WHERE user_id = $_GET[id]");
$rad = mysql_fetch_assoc($befal);

可能是什么问题?

谢谢

最佳答案

呃...这是被黑客攻击的秘诀。我想给你介绍一下SQL injection以此为特征 very funny yet poignant cartoon .

试试这个。

$username = mysql_escape_string($_GET['username']);
$query = mysql_query("SELECT * FROM users WHERE username = '$username'");

关于PHP:使用字符串参数时 SQL 语句中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/572731/

上一篇:PHP 嵌套循环行为异常

下一篇:MySQL 性能

相关文章:

mysql - 我可以在 MySQL 重复事件中创建临时表吗?

mysql - 多删除不起作用

php - 如何更改 WooCommerce 缩略图裁剪位置?

php - 如何从 Zend Framework 2 中的 Controller 修改表单验证器?

php - 在单个查询中获取所有推荐用户?

php 管理员和用户帐户不起作用

php - 我应该使用 php mysql 或 json 文件来检索数据?

php - symfony2.8 与 php 7.2 中的 session_cache_limiter 错误

php - 如何将 readfile() 中的内容分配给变量?

php - 在 Codeigniter/PHP 中显示类别