- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个直接的脚本,如果访问代码正确,它会返回用户数据。
$sql = "SELECT * FROM users WHERE access_codes = '$CODE' ";
$rs = $mysqli->query($sql);
$rows = mysqli_num_rows($rs);
if ($rows == 1) {
//CODE IS FOUND, RETURN USERNAME AND PASSWORD
$row = mysqli_fetch_array($rs);
$username = $row['username'];
$password = $row['password'];
mysqli_close($mysqli); // Closing Connection
header("Location: http://GOTONEXTPAGE.COM");
die();
} else {
//CODE IS NOT FOUND
mysqli_close($mysqli); // Closing Connection
exit;
}
如果 access_codes 仅包含 1 个值,则效果很好。
但我想要实现的是 access_codes 可以包含多个代码,用空格分隔,例如:123456 654321 0101020304。
如果找到这些代码中的任何,我仍然可以检索用户数据。
我可以通过查询来做到这一点,还是需要使用 php 来解决?
问候中号
最佳答案
如果您能够规范化架构,那就最好了。制作一个访问代码表,其中 userID
的每个组合各占一行。和access_code
。然后你可以使用JOIN
在此表和 users
之间表来获取具有特定访问代码的用户。
如果无法重新设计,可以使用正则表达式:
$sql = "SELECT * FROM users WHERE access_code RLIKE CONCAT('[[:<:]]', ?, '[[:>:]]')";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('s', $CODE);
$stmt->execute();
[[:<:]]
和[[:>:]]
匹配单词边界,因此仅当代码是列中的整个单词时才会匹配。
关于php - 从数据库中选择 WHERE somefield 包含值之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28250121/
我有一个直接的脚本,如果访问代码正确,它会返回用户数据。 $sql = "SELECT * FROM users WHERE access_codes = '$CODE' "; $rs = $mysq
我有文件: { "_id": 111, "price": 1000, "color": "red", } 我使用带有高斯函数的function_score来按价格获取得分。 现在,如果颜色
代码: MyModel(models.Model): start_date = models.DateTimeField() end_date = models.DateTimeFie
基本上我有这样的东西: UPDATE Table SET Table.col1 = other_table.col1, FROM Table INNER JOIN ot
http://sqlfiddle.com/#!2/37dd94/17 如果我执行 SELECT DISTINCT,我得到的结果与只执行 SELECT 的结果相同。 在查询结果中,您将看到两个包含 Di
我是一名优秀的程序员,十分优秀!