Php 检查是否存在具有给定值的行

Php 检查是否存在具有给定值的行,php,mysql,sql,database,Php,Mysql,Sql,Database,我有一个查询,要求用户在我的应用程序中创建追随者/以下关系: INSERT INTO following(IdUser,followingID) VALUES('%d','%d')", $id, $followingId 检查两个用户之间是否已经存在关系的查询是什么 或者,如何检查两个用户之间是否不存在关系 通常,我在iOS应用程序中返回结果,如下所示: if (!$result['error']) { // if no error occured, print out the

我有一个查询,要求用户在我的应用程序中创建追随者/以下关系:

INSERT INTO following(IdUser,followingID) VALUES('%d','%d')", $id, $followingId
检查两个用户之间是否已经存在关系的查询是什么

或者,如何检查两个用户之间是否不存在关系

通常,我在iOS应用程序中返回结果,如下所示:

    if (!$result['error']) {
    // if no error occured, print out the JSON data of the 
    // fetched photo data
    print json_encode($result);
} else {
    //there was an error, print out to the iPhone app
    errorJson('Follow is broken');
}

如果您有任何帮助,我们将不胜感激。

您可以选择计数以查看记录是否已经存在

SELECT count(*) FROM following WHERE idUser = <id> AND followingID = <followingId>
从以下选项中选择count(*),其中idUser=和followId=

如果计数大于零,则存在关系

您可以选择计数以查看记录是否已经存在

SELECT count(*) FROM following WHERE idUser = <id> AND followingID = <followingId>
从以下选项中选择count(*),其中idUser=和followId=

如果计数大于零,则存在关系

如果为
IdUser
followind
定义唯一索引,则可以使用
REPLACE
而不是
INSERT
来更新它,而不是插入新的索引


HTH(希望有帮助)

如果您为
IdUser
followind
定义了一个唯一的索引,您可以使用
REPLACE
而不是
INSERT
来更新它,而不是插入新的索引


HTH(希望有帮助)

您可以进行额外的查询,以检查这两个选项中是否有一个“跟随”另一个或相反:

SELECT 1 FROM following
WHERE
(IdUser = <id> AND followingID = <following id>)
OR
(IdUser = <following id> AND followingID = <id>)
从以下选项中选择1
哪里
(IdUser=和以下ID=)
或
(IdUser=和以下ID=)

如果查询返回“1”,则这两个查询中有一个已经在跟踪另一个。

您可以进行额外的查询,以检查这两个查询中是否有一个正在“跟踪”另一个或相反:

SELECT 1 FROM following
WHERE
(IdUser = <id> AND followingID = <following id>)
OR
(IdUser = <following id> AND followingID = <id>)
从以下选项中选择1
哪里
(IdUser=和以下ID=)
或
(IdUser=和以下ID=)

如果查询返回“1”,则两个查询中的某个已经在另一个查询之后。

如果关系已经存在,我将使用num_rows函数返回。我建议使用,因为mysql_*命令正逐渐被弃用,但无论如何

为了创建一个查询来检查它们是否已经存在,您需要使用SELECT语句

SELECT * FROM following WHERE IdUser = '$id' AND followingID = '$following'

如果你得到1,你就会知道这个关系确实发生了,如果你得到了0,尽管这个关系是假的。

如果这个关系已经存在,我会使用num_rows函数返回。我建议使用,因为mysql_*命令正逐渐被弃用,但无论如何

为了创建一个查询来检查它们是否已经存在,您需要使用SELECT语句

SELECT * FROM following WHERE IdUser = '$id' AND followingID = '$following'

如果你得到1,你就会知道这个关系确实发生了,如果你得到了0,尽管这个关系是假的。

你必须为此进行交易

首先执行选择

SELECT * FROM following where idUser = $id AND followingID = $followingId
现在,若上面的查询选择了一行或多行,那个么已经存在一个关系,若并没有行(零行),那个么就并没有关系。对于这两种情况,采取相应的行动

确保根据PHP和SQL语法使用查询。若ID是char或varchar,那个么在查询中,这些ID应该被单逗号或双逗号包围

像这样: 如果ID为varchar或char,则

$query = "SELECT * FROM following where idUser = '".$id."' AND followingID = '". $followingId."'";
如果ID是int或任何其他数字值(根据表中的列)

还要确保我使用的列名和表名是正确的

现在,让我们首先执行查询

$result = mysql_query($query); // this method works but is not preferred. better if insert query here instead of variable $query
现在,让我们检查它选择了多少行,并采取适当的措施

if(mysql_num_rows($result) > 0){
    //do something here or show error because relation already exists
}
else{
   //relation already do not exists. so you can insert the record here
}
注意:从PHP 5.5.0开始,mysql\u query和mysql\u num\u rows函数已被弃用。因为我很久以前就用php编写代码了,所以我现在记得这些。您可以在php网站上找到备选方案。但这些功能仍然有效。 和
您必须为此进行交易

首先执行选择

SELECT * FROM following where idUser = $id AND followingID = $followingId
现在,若上面的查询选择了一行或多行,那个么已经存在一个关系,若并没有行(零行),那个么就并没有关系。对于这两种情况,采取相应的行动

确保根据PHP和SQL语法使用查询。若ID是char或varchar,那个么在查询中,这些ID应该被单逗号或双逗号包围

像这样: 如果ID为varchar或char,则

$query = "SELECT * FROM following where idUser = '".$id."' AND followingID = '". $followingId."'";
如果ID是int或任何其他数字值(根据表中的列)

还要确保我使用的列名和表名是正确的

现在,让我们首先执行查询

$result = mysql_query($query); // this method works but is not preferred. better if insert query here instead of variable $query
现在,让我们检查它选择了多少行,并采取适当的措施

if(mysql_num_rows($result) > 0){
    //do something here or show error because relation already exists
}
else{
   //relation already do not exists. so you can insert the record here
}
注意:从PHP 5.5.0开始,mysql\u query和mysql\u num\u rows函数已被弃用。因为我很久以前就用php编写代码了,所以我现在记得这些。您可以在php网站上找到备选方案。但这些功能仍然有效。 和

尝试此操作时出错。它可能是因为关系存在而打印错误吗?一会儿,我为您添加了更多解释添加了更多详细信息,如果关系存在/不存在,它应该返回什么?这是针对与PHP API交互的iOS应用程序的。查看我的代码编辑。尝试此操作时出错。它可能是因为关系存在而打印错误吗?一会儿,我为您添加了更多解释添加了更多详细信息,如果关系存在/不存在,它应该返回什么?这是针对与PHP API交互的iOS应用程序的。查看我的代码编辑。