请帮忙看看这段代码有什么问题?(第 76 行是中间那一行)
require("dbConfig.php");
$sql = 'SELECT * FROM dbUsers WHERE username='$_SESSION["valid_user"]'';
$r = mysql_query($sql);
你错过.
了:
$sql = 'SELECT * FROM dbUsers WHERE username='$_SESSION["valid_user"]'';
应该:
$sql = "SELECT * FROM dbUsers WHERE username='".$_SESSION["valid_user"]."'";
尝试这个:
$sql = 'SELECT * FROM dbUsers WHERE username='.$_SESSION["valid_user"];
试试这个(如果你清理用户输入,你将防止 SQL 注入):
<?php
require("dbConfig.php");
$sql = "SELECT * FROM dbUsers WHERE username='".filter_var(mysql_real_escape_string($_SESSION["valid_user"]),FILTER_SANITIZE_STRING)."'";
$r = mysql_query($sql);
?>
编辑:添加了 mysql_real_escape_string() 用于转义输入字符串,但即使这样也不是 100% 有效地防止 SQL 注入,如这里所讨论的。