用php编写sql查询

用php编写sql查询,php,mysql,Php,Mysql,我正在尝试用php准备的查询编写mysql查询 首先是查询 $query="delete from friends where UserA=?, UserB=? or (UserB=?, UserA=?)"; 我想从数据库中删除好友条目。条目可以是任何顺序。与此类似,朋友关系可以输入为UserA作为UserB的朋友,或UserB作为UserA的朋友。但无论如何只有一个条目。因此,为了检查并确保条目被删除,我试图在两种可能的情况下查找并删除它 第二, 我对将参数传递给上面的s

我正在尝试用php准备的查询编写mysql查询

首先是查询

    $query="delete from friends  where UserA=?, UserB=? 
    or (UserB=?, UserA=?)";
我想从数据库中删除好友条目。条目可以是任何顺序。与此类似,朋友关系可以输入为
UserA
作为
UserB
的朋友,或
UserB
作为
UserA
的朋友。但无论如何只有一个条目。因此,为了检查并确保条目被删除,我试图在两种可能的情况下查找并删除它

第二,
我对将参数传递给上面的sql查询感到困惑。上述查询中的参数有四个。所以我猜要传递四个参数。但是我认为如果我这样做,
$stmt->bind_param('ii',$userAid,$userBid)
这应该会起作用

$stmt=$mysqli->stmt_init();
$stmt->prepare($query);
$stmt->bind_param('iiii',$userAid, $userBid, $userAid, $userBid);
$stmt->execute(); 
让我们总结一下:

/* fixed the query */
$query="delete from friends where (UserA=? AND UserB=?) OR (UserB=? AND UserA=?)";

/* invoke the query */
$stmt=$mysqli->stmt_init();
$stmt->prepare($query);
// (1 parameter for each "?" )
$stmt->bind_param('iiii',$userAid, $userBid, $userAid, $userBid);
$stmt->execute(); 

只需编辑您的查询:
$query=“从朋友中删除(UserA=?和UserB=?)或(UserB=?和UserA=?)”。你应该使用“AND”,而不是“,”。剩下的似乎fine@CaptainCrunch参数有多少?两个还是四个?四个参数。“每个人一个”?“好的…………。@CaptainCrunch如果你认为你的评论是一个答案,那么你什么时候不回答而不是评论?