如何检查包含字符串的列?

时间:2015-05-06 08:16:06

标签: php mysql sql select

目前我一直在使用它:

SELECT * FROM `meow` WHERE profile LIKE '%$username%'

但我面临的问题是,如果有人将这些字母放在一起,那就是'它将拉出包含a的所有东西,并且在我的结尾有一点安全风险,我如何仅搜索1列以查看它是否与$ username完全一致?不是整张桌子?

4 个答案:

答案 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'"

完全匹配。