Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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_Mysqli_Inner Join - Fatal编程技术网

Php 内部联接阻止用户,然后联接朋友表以删除用户

Php 内部联接阻止用户,然后联接朋友表以删除用户,php,mysqli,inner-join,Php,Mysqli,Inner Join,我知道当使用内部连接时,PHP会变得非常复杂。我已经有了一些想法,但似乎没有任何效果 这就是我努力的方向 当用户A阻止用户B时,用户B将从他们的朋友中删除 所以我有这个,有一个错误 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在“user1\u id=15、user2\u id=3和status=1”附近使用的正确语法 在街区内加入朋友。 删除第1行的“fro” 谁能完整地解释一下内部连接,并告诉我哪里出了问题,以便将来使用 $query = mysqli_query($

我知道当使用内部连接时,PHP会变得非常复杂。我已经有了一些想法,但似乎没有任何效果

这就是我努力的方向 当用户A阻止用户B时,用户B将从他们的朋友中删除

所以我有这个,有一个错误

您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在“user1\u id=15、user2\u id=3和status=1”附近使用的正确语法 在街区内加入朋友。 删除第1行的“fro”

谁能完整地解释一下内部连接,并告诉我哪里出了问题,以便将来使用

$query = mysqli_query($mysqli,"INSERT INTO block user1_id=$user1_id AND user2_id=$user2 AND status=1
INNER JOIN friends ON block. 
DELETE from friends where user1_id=$user1_id AND user2_id=$user2 AND status=2 ")
or die (mysqli_error($mysqli));

您的SQL是各种各样的混乱。(这不是PHP的错)

请看一下语法和语法。我也不理解您在
INSERT
语句中的
内部连接。
MySQLi也只允许每个查询执行一个命令(关于安全和良好设计的内容?)

INSERT
应该是这样的(我不知道您的表结构,所以我在这里假设:

INSERT INTO block (user1_id, user2_id, status) VALUES ('$user1_id', '$_user2_id', 1)
除此之外,您的删除查询看起来还不错。只需确保它位于自己的
mysqli_query()

中,您应该使用两个不同的语句,并且可以使用参数化查询

$sql_insert = "INSERT INTO block (user1_id, user2_id, status) values (?,?,1)";    
$stmt = $mysqli->prepare($sql_insert);
$stmt->bind_param("s", $user1_id);
$stmt->bind_param("s", $user2_id);
if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}

$sql_delete = "DELETE FROM friends where user1_id=? AND user2_id=? AND status=2 "
$stmt = $mysqli->prepare($sql_delete);
$stmt->bind_param("s", $user1_id);
$stmt->bind_param("s", $user2_id);
if (!$stmt->execute()) {
    echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}

为什么要在插入中使用
内部联接
?感谢您非常有用,非常有帮助,并且没有打倒我。现在它更有意义了。