Php 如果行==1,则显示内容如果行==0,则不显示内容
因此,我有一个登录脚本,它根据登录用户的用户名创建一个$\u会话。在另一个页面上,如果该用户的行中有1,我希望显示内容。如果该行中有0,则不显示内容。我在这里遇到问题,无论我尝试了什么,无论与我登录的用户是谁,它都不会显示YES test1=1Php 如果行==1,则显示内容如果行==0,则不显示内容,php,mysql,Php,Mysql,因此,我有一个登录脚本,它根据登录用户的用户名创建一个$\u会话。在另一个页面上,如果该用户的行中有1,我希望显示内容。如果该行中有0,则不显示内容。我在这里遇到问题,无论我尝试了什么,无论与我登录的用户是谁,它都不会显示YES test1=1 test2=0 <? require_once 'dbinfo.php'; $sess = $_SESSION['authuser']; $link = mysqli_connect($servername, $username, $p
test2=0
<?
require_once 'dbinfo.php';
$sess = $_SESSION['authuser'];
$link = mysqli_connect($servername, $username, $password);
if (!$link) {
die('Could not connect: ' . mysqli_error($link));
}
mysqli_select_db($link, $database) or trigger_error(mysqli_error($link));
$acc = "SELECT username FROM admins WHERE username = '$sess'";
$result = mysqli_query($link, $acc) or trigger_error(mysqli_error($link));
ob_start();
while($row = $result->fetch_assoc())
{
if($row['access'] == 1)
{
echo 'YES';
}
elseif ($row['access'] == 0)
{
echo 'NO';
}
}
ob_end_flush()
?>
写入访问权限(列),并在返回变量中得到0时尝试使用isset()函数和运算符===。必须写入
session_start();
在所有要使用$\u会话的文件中
您的select查询将只输出用户名列,因为您只选择了这一列,请使用
SELECT * FROM admins WHERE username = '$sess'
或
相反
您绝对应该学习准备好的语句,因为您的实际查询非常容易接受sql注入。
准备好的语句示例()
您应该做的第一件事是开始使用参数化查询。按照您现在的查询方式,没有正确地转义内容。接下来,var\u dump($result)代码>在您的查询之后,看看您得到了什么。接下来,var\u转储($\u会话)
。您是否正在某处开始会话?选择访问…
您没有获取access
列哦,天哪。我现在觉得自己很笨。谢谢同学们,我错过了。我经历了几个不同的编码迭代,肯定错过了。
SELECT username, access FROM admins WHERE username = '$sess'
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
$stmt->bind_param("s", $city);
$stmt->execute();
$stmt->bind_result($district);
$stmt->fetch();
$stmt->close();
}
$mysqli->close();