繁体   English   中英

如何检查 MySQL/PHP 中的一列是否存在具有特定值的行?

[英]How to check for existence of a row with particular value on one of the columns in MySQL/PHP?

我正在编写一个程序,该程序必须检查表中是否存在具有唯一“id”值的行,如果确实存在则从中获取数据,或者如果不存在则创建该行。

我对 MySQL 语法比较陌生,到目前为止它给我带来了麻烦。

我试图做的是这样的:

连接数据库;

 $servername = "localhost"; $username = "root"; $password = ""; $dbname = "test"; $conn = mysqli_connect($servername, $username, $password, $dbname) or die("Connection failed: " . mysqli_connect_error()); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\\n", mysqli_connect_error()); exit(); }

我尝试检查是否存在具有其中一列特定唯一值的行

 $sql = "SELECT EXISTS(SELECT * FROM employee WHERE id=300)"; $result = mysqli_query($conn, $sql) or die("error to check the existence of the row"); if ($result = 1){echo "A row with current date does exist";} else {echo "A row with current date does not exist";}

此检查的问题在于,无论表中是否存在这样的“42”值,或任何其他值,就此而言,它似乎总是返回“1”。

显然,这行不通。 但是应该怎么做呢?
对不起,如果这个问题很愚蠢。

您需要从查询结果中获取该行。

$row = mysqli_fetch_row($result);
if ($row[0]) {
    echo "A row with current date does exist";
} else {
    echo "A row with current date does not exist";
}

顺便说一句,您正在检查 ID,而不是日期,因此消息似乎与查询不匹配。

您的代码中也有错字

if ($result = 1)

正在分配变量,而不是测试它; 比较使用==

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM