无法将字符串插入 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);
  }
}

http://php.net/manual/en/pdo.prepared-statements.php

您可以使用 .

$user_id = 'michael';
$q = 'SELECT * FROM users WHERE userid="'.$user_id.'"';

或者对表达式使用双引号,对变量使用单引号

$user_id = 'michael';
$q = "SELECT * FROM users WHERE userid='$user_id'";

我认为第二个选项最小且最容易记住