Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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 好友请求SQL语句或运算符不工作_Php - Fatal编程技术网

Php 好友请求SQL语句或运算符不工作

Php 好友请求SQL语句或运算符不工作,php,Php,你好 我正在尝试添加好友请求功能,但此语句无法工作 我正在尝试创建忽略或取消好友请求功能,此功能应适用于忽略和取消好友请求,但不起作用 我试图用一种相反的方法创建两个函数,如下所示 我试过了,但没有成功 这是一个模型 公共函数取消或忽略朋友请求($data){ $this->db->query('DELETE FROM friend_request WHERE(sender=:my_id AND receiver=:frnd_id)|(sender=:frnd_id AND receiver=:

你好 我正在尝试添加好友请求功能,但此语句无法工作 我正在尝试创建忽略或取消好友请求功能,此功能应适用于忽略和取消好友请求,但不起作用

我试图用一种相反的方法创建两个函数,如下所示

我试过了,但没有成功

这是一个模型
公共函数取消或忽略朋友请求($data){
$this->db->query('DELETE FROM friend_request WHERE(sender=:my_id AND receiver=:frnd_id)|(sender=:frnd_id AND receiver=:my_id)');
$this->db->bind(':my_id',$data['my_id']);
$this->db->bind(':frnd_id',$data['user_id']);
如果($this->db->execute()){
返回true;
}否则{
返回false;
}
}
公共函数取消或忽略($data){
$this->db->query('DELETE FROM friend_request,其中发送方=:my_id,接收方=:frnd_id');
$this->db->bind(':my_id',$data['my_id']);
$this->db->bind(':frnd_id',$data['user_id']);
如果($this->db->execute()){
返回true;
}否则{
返回false;
}
}
然后我使用了这两个函数,如下所示:

这是一个控制器
公共函数cancelFriendRequest(){
如果($\u服务器['REQUEST\u METHOD']=='POST'){
$\u POST=filter\u input\u数组(input\u POST,filter\u SANITIZE\u字符串);
$data=[
'my_id'=>trim($_SESSION['user_id']),
'user\u id'=>trim($\u POST['some\u id']),
];
//关注这个if语句
如果($this->userModel->cancel_或_ignore_friend_请求($data)| |$this->userModel->cancel_或_ignore($data)){
echo json_编码(1);
}否则{
echo json_编码(0);
}
}否则{
重定向('profile?u='.$\u会话['username']);
}
}
应该是这样的,工作起来

这是一个模型
//取消好友请求
公共函数取消或忽略朋友请求($data){
$this->db->query('DELETE FROM friend\u request WHERE(发送方=:我的\u id和接收方=:frnd\u id)或(发送方=:frnd\u id和接收方=:我的\u id)');
$this->db->bind(':my_id',$data['my_id']);
$this->db->bind(':frnd_id',$data['user_id']);
如果($this->db->execute()){
返回true;
}否则{
返回false;
}
}
我在我的控制器上用了这个

这是一个控制器
公共函数cancelFriendRequest(){
如果($\u服务器['REQUEST\u METHOD']=='POST'){
$\u POST=filter\u input\u数组(input\u POST,filter\u SANITIZE\u字符串);
$data=[
'my_id'=>trim($_SESSION['user_id']),
'user\u id'=>trim($\u POST['some\u id']),
];
如果($this->userModel->cancel\u或\u ignore\u friend\u请求($data)){
echo json_编码(1);
}否则{
echo json_编码(0);
}
}否则{
重定向('profile?u='.$\u会话['username']);
}
}

您的问题可能是使用了两次
:my\u id
:frnd\u id
参数。这可以工作,但取决于参数设置。但是,您可以使用唯一的参数名称来重复使用实际的数据值

$this->db->query('DELETE FROM friend_request 
                    WHERE (     sender = :my_id AND receiver = :frnd_id 
                            OR  sender = :frnd_id2 AND receiver = :my_id2
                          )';
$this->db->bind(':my_id',  $data['my_id']);
$this->db->bind(':my_id2', $data['my_id']);

$this->db->bind(':frnd_id',  $data['user_id']);
$this->db->bind(':frnd_id2', $data['user_id']);

它以什么方式不起作用?是否返回
false
?还是返回
true
但不删除任何内容?