我试图在PHP中创建一个登录页面,我试图在这里构建查询:
$q = 'SELECT * FROM users WHERE userid="'+$username+'"';
当我用
回声时echo $q
我得到0.当我做
$q = 'SELECT * FROM users WHERE userid="'+"test"+'"';
我得到0.当我做
$q = 'SELECT * FROM users WHERE userid="michael"';
我得到了打印出的字符串的预期结果
答案 0 :(得分:1)
使用.
进行连接,也不要忘记清理数据以防止mysql注入。
$user_id = 'test';
$q = 'SELECT * FROM users WHERE userid="' . $user_id . '"';
答案 1 :(得分:0)
尝试使用PDO Prepared语句来保护自己免受SQL注入。
$q = 'SELECT * FROM users WHERE userid = ?';
$stmt = $dbh->prepare($q);
if ($stmt->execute(array($username))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
答案 2 :(得分:0)
$user_id = 'michael';
$q = 'SELECT * FROM users WHERE userid="'.$user_id.'"';
或使用双引号表达式并使用单引号作为变量
$user_id = 'michael';
$q = "SELECT * FROM users WHERE userid='$user_id'";
我相信第二种选择是最小的,最容易记住