目前我一直在使用它:
SELECT * FROM `meow` WHERE profile LIKE '%$username%'
但我面临的问题是,如果有人将这些字母放在一起,那就是'它将拉出包含a的所有东西,并且在我的结尾有一点安全风险,我如何仅搜索1列以查看它是否与$ username完全一致?不是整张桌子?
答案 0 :(得分:2)
要进行精确的字符串匹配,您应该使用=
运算符而不是like
运算符:
SELECT * FROM `meow` WHERE profile = '$username'
答案 1 :(得分:1)
停止使用字符串连接来构建查询。这是邪恶的。而是使用mysqli或pdo并使用预准备语句。
$pdo = new PDO('mysql:host=localhost;dbname=yourdb', 'your_username', 'your_password');
$stmt = $pdo->prepare("SELECT * FROM `meow` WHERE profile = ?");
$stmt->execute(array($username));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
另外,如果您想检查完全匹配,请使用相等而不是like
。
答案 2 :(得分:0)
而不是使用等于
的类似用法试试这个:
SELECT * FROM meow WHERE profile = '$username'
答案 3 :(得分:0)
尝试 -
"SELECT * FROM `meow` WHERE profile LIKE '$username'"
完全匹配。