Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在同一语句中访问两个表?_Php_Mysql_Sql - Fatal编程技术网

Php 在同一语句中访问两个表?

Php 在同一语句中访问两个表?,php,mysql,sql,Php,Mysql,Sql,我正在尝试创建一个upvote系统,在检查您是否登录并获取您的用户ID后,它会检查表中是否已经包含您的用户ID和postid,如果已经包含,则表示已经进行了upvote。我只想知道我的代码有什么问题,这是用来学习的,我不需要任何复杂的东西 代码: if(isset($\u GET['upvote'])){ if($\u会话[“loggedin”]==true){ $upvoteid=$\u GET[“upvote”]; $servername=“”; $username=“”; $passwor

我正在尝试创建一个upvote系统,在检查您是否登录并获取您的用户ID后,它会检查表中是否已经包含您的用户ID和postid,如果已经包含,则表示已经进行了upvote。我只想知道我的代码有什么问题,这是用来学习的,我不需要任何复杂的东西

代码:

if(isset($\u GET['upvote'])){
if($\u会话[“loggedin”]==true){
$upvoteid=$\u GET[“upvote”];
$servername=“”;
$username=“”;
$password=“”;
$dbname=“”;
//创建连接
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果(!$conn){
die(“连接失败:”.$conn->connect\U错误);
} 
$sql=“从username=“.$”会话[“loggedinusername”]中的用户选择id;
$result=$conn->query($sql);
如果($result->num_rows>0){
而($row=$result->fetch_assoc()){
$userid=$row[“id”];
}
$sql2=“从upvotedposts中选择userid,postid,其中userid='”、“$userid.”和postid='”、“$upvoteid.””;
$result2=$conn->query($sql);
如果(!$result2->numrows>0){
$sql=“UPDATE posts SET-upvotes=upvotes+1,其中id=”.$upvoteid;
if($conn->query($sql)==TRUE){
呼应“成功投票”;
}否则{
echo“Error:”.$sql.“
”$conn->Error; } } }否则{ “回声”失败; } $conn->close(); } }

当我点击“向上投票”按钮时,它什么也不做。这里的问题是,据我所知,它似乎可以工作,但我可能忘记了一些我不知道的东西或错误地使用了一些东西。

您缺少一个结束语

应该是:

echo "Failed";

字符串,如
$\u SESSION[“loggedinusername”]
,需要引用。您对SQL注入非常开放。由于您使用的是mysqli,请利用和。这也将解决您烦人的报价问题。警告可能重复:当使用
mysqli
时,您应该使用并将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
或任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。用户名是字符串列吗?userid和postid列是否为整数?如果是这样的话,您的查询将假定这些字段是相反的。
echo "Failed;
echo "Failed";