实际上我试图根据当前会话显示数据库中2个表的数据,基本上,我已经阅读了很多关于如何解决这个问题的文章和论坛,但我仍然面对它们。所以这些是我已经做过的数据和代码:
<?php
include('db.php');
$sql="SELECT*
FROM users
INNER JOIN details ON users.id= details.id LIMIT 1 WHERE users.id ='$loggedin_id' " ;
$result=mysqli_query($db,$sql);
if (!$result) {
printf("Error: %s\n", mysqli_error($db));
exit();
}
?>
所以在这里,我收到了这个错误: &#34;错误:您的SQL语法出错;检查与您的MariaDB服务器版本相对应的手册,以便在&#39; WHERE users.id =&#39; 16&#39;&#39;&#39;在第3行&#34;。所以如果我只使用这个查询:
$sql="SELECT* FROM users INNER JOIN details ON users.id= details.id"
它将显示我数据库中的所有数据,但我只需要当前会话中的数据。
这是我的session.php文件:
<?php
include('db.php');
session_start();
$user_check=$_SESSION['sess_username'];
$ses_sql=mysqli_query($db,"select username,id from users where username='$user_check' ");
$row=mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
$loggedin_session=$row['username'];
$loggedin_id=$row['id'];
$role = $_SESSION['sess_userrole'];
if(!isset($loggedin_session) && $role!="user"){
header('Location: index.php?err=2');
}
?>
这是我的表格细节: table users table details
希望有人能帮助我,我的sql和php新手。 TQ
答案 0 :(得分:7)
更改您的查询。
$sql="SELECT*
FROM users
INNER JOIN details ON users.id= details.id WHERE users.id ='$loggedin_id' LIMIT 1" ;
答案 1 :(得分:0)
我认为您的查询应如下所示:
var a = element.all(by.xpath("//div[contains(text(), 'test_protractor')]")).get(1).getText().then(function(msg){
console.log(msg)
expect(msg).toEqual("test_protractor")
})
答案 2 :(得分:-1)
您可以忽略INNER JOIN并按以下步骤使用程序步骤:
$_session["anything"] = mysqli_insert_id(your db connection variable);
然后将该会话ID存储到变量中(例如-$sessionCheck = $_session["anything"];
,然后在执行插入操作时将此变量的值插入到会话列中数据库的所有列中。让会话列为int和unique。
WHERE sessionCheck = $sessionCheck
这对我的过程PHP 7(MySqli)和MySQL 5来说非常合适