无法将字符串插入 mysql 查询
Cant insert string into mysql query
我正在尝试在 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"';
我得到了打印字符串的预期结果
使用.
连接,也不要忘记清理数据以防止mysql注入。
$user_id = 'test';
$q = 'SELECT * FROM users WHERE userid="' . $user_id . '"';
尝试使用 PDO 准备语句来保护自己免受 SQL 注入。
$q = 'SELECT * FROM users WHERE userid = ?';
$stmt = $dbh->prepare($q);
if ($stmt->execute(array($username))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
您可以使用 .
$user_id = 'michael';
$q = 'SELECT * FROM users WHERE userid="'.$user_id.'"';
或者对表达式使用双引号,对变量使用单引号
$user_id = 'michael';
$q = "SELECT * FROM users WHERE userid='$user_id'";
我认为第二个选项最小且最容易记住
我正在尝试在 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"';
我得到了打印字符串的预期结果
使用.
连接,也不要忘记清理数据以防止mysql注入。
$user_id = 'test';
$q = 'SELECT * FROM users WHERE userid="' . $user_id . '"';
尝试使用 PDO 准备语句来保护自己免受 SQL 注入。
$q = 'SELECT * FROM users WHERE userid = ?';
$stmt = $dbh->prepare($q);
if ($stmt->execute(array($username))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
您可以使用 .
$user_id = 'michael';
$q = 'SELECT * FROM users WHERE userid="'.$user_id.'"';
或者对表达式使用双引号,对变量使用单引号
$user_id = 'michael';
$q = "SELECT * FROM users WHERE userid='$user_id'";
我认为第二个选项最小且最容易记住