[英]How to check if user have exists specific letter on table
I am trying to check if a user has a specific letter on SQL table like:我正在尝试检查用户是否在 SQL 表上有一个特定的字母,例如:
I have SQL Table amx_amxadmins and columns id, username, access example:我有 SQL 表 amx_amxadmins 和列 id、用户名、访问示例:
amx_amxadmins:
--------------------------------------------------
| ID | USERNAME | ACCESS |
--------------------------------------------------
| 1 | TEST1 | abcde |
--------------------------------------------------
| 2 | TEST2 | bcde |
--------------------------------------------------
The Flag A is for No Access
.标志 A 用于
No Access
。
So how do I check if user have in column access A or not?那么我如何检查用户是否在列访问 A 或没有?
For example:例如:
<?php
$check_user_flag = $mysqli->query("SELECT * FROM `$amxadmins` WHERE `username` = '$logged[username]' AND `access` LIKE 'a' ") or die(mysqli_error($mysqli));
$checkUSRFLAG = $check_user_flag->fetch_assoc();
if($checkUSRFLAG->num_rows > "a"){
echo "test";
}
else {
echo "test2";
}
?>
```
EDIT BY RyffLe由 RyffLe 编辑
$query = "SELECT * FROM `$amxadmins` WHERE `username` = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('s', $param);
$param = $logged['username'];
$stmt->execute();
$result = $stmt->bind_result();
$stmt->close();
$Permissions = $obj->access;
if (strpos($Permissions, 'a')) {
echo("An A has been found!");
}
else {
echo("An A wasn't Found...");
}
First of all wellcome on Stackoverflow Beytula Ibryam.首先,欢迎访问 Stackoverflow Beytula Ibryam。
Thats Your table:那是你的桌子:
amx_amxadmins:
--------------------------------------------------
| ID | USERNAME | ACCESS |
--------------------------------------------------
| 1 | TEST1 | abcde |
--------------------------------------------------
| 2 | TEST2 | bcde |
--------------------------------------------------
First of all you need to select all Data of the User you need to check from your Data:首先,您需要从您的数据中选择您需要检查的所有用户数据:
$query = "SELECT * FROM `$amxadmins` WHERE `username` = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('s', $param);
$param = $logged[username];
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
$obj = $result->fetch_object();
Next is to get your access as string:接下来是将您的访问权限作为字符串:
$Permissions = $obj->access;
Now we can go to check the access for your wanted literals:现在我们可以去检查您想要的文字的访问权限:
if (strpos($Permissions, 'a')) {
echo("An A has been found!");
}
else {
echo("An A wasn't Found...");
}
Enjoy ;)享受 ;)
--- EDITS --- --- 编辑 ---
$query = "SELECT * FROM `?` WHERE `username` = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('ss', $amxadmins, $logged['username']);
$stmt->execute();
$result = $stmt->get_result();
$stmt->close();
$obj = $result->fetch_object();
if($checkUSRFLAG->num_rows > "a"){
echo ("test");
}
else {
echo("test2");
}
If you don't have a MySQLi Connection File, add following lines in to your main file:如果您没有 MySQLi 连接文件,请将以下几行添加到您的主文件中:
$mysqli = new mysqli('YOUR_DATABEAS_IP', 'YOUR_DATABEAS_USER', 'YOUR_DATABEAS_USER_PASSWORD', 'YOUR_DATABEAS_NAME', 'YOUR_DATABEAS_PORT');
if($mysqli->connect_error) {
exit('Error connecting to database'); //Should be a message a typical user could understand in production
}
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
It sounds like you're just looking for a wildcard search.听起来您只是在寻找通配符搜索。 Use the
%
character for that.为此使用
%
字符。 So instead of this:所以而不是这个:
AND `access` LIKE 'a'
You'd have this:你会有这个:
AND `access` LIKE '%a%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.