初学者php mysql - 如果row包含特定值,则返回boolean

时间:2017-03-25 16:40:09

标签: php mysql database variables

好的,基本上我正在尝试创建一个简单的网络应用

我想检查表中是否有一个元素,如果在内部我想返回一个布尔值,例如,如果" abc"在名为" name"的表中。然后返回YES。

这是我的代码,不工作:

function palindromeCheck(string) {
    const check = string.split('').reverse().join('');
    return string === check;
}

和这里的非工作部分:

error_reporting(E_ALL);

$mysql = mysqli_connect(/* PRIVATE DATA */) or die ("ERROR CONNECTING TO THE DB");

if(isset($_POST['submit'])) {

    $theAddress = $_POST['youtubeURL'];

    $result = "SELECT * FROM data WHERE youtubeURL = '" . $theAddress . "'";

    $query = mysqli_query($mysql, $result);

    if (!$query) {
        printf("Error");
    } else {
        printf("NO ERROR");
    }

3 个答案:

答案 0 :(得分:1)

首先,学习使用参数查询。它们实际上并不比将字符串值填充到查询中更难。

其次,如果你想知道某些东西是否存在,那么只需编写查询即可。最简单的查询可能是:

SELECT EXISTS (SELECT 1 FROM data WHERE youtubeURL = ?) as exists_flag

如果匹配,则返回1。只需运行查询并读取返回的单个值。

请注意,返回select *以检查是否存在是一种反模式。从数据库返回的数据超出了您的需要(在行和列方面)。这通常不是一个好主意。

答案 1 :(得分:0)

你需要使用mysqli_num_rows来计算行..

$result = "SELECT * FROM data WHERE youtubeURL = '" . $theAddress . "'";

$query = mysqli_query($mysql, $result);

if(mysqli_num_rows($query)) {
    echo "AT LEAST ONE RESULT LIKE THIS"; 
} else {
    echo "NO RESULT LIKE THIS";
}

答案 2 :(得分:0)

应该是这样的。

//in case you want to see total of the wors
if(mysqli_num_rows($query) == 0) {
    echo "NO RESULT LIKE THIS";
} else {
    echo "AT LEAST ONE RESULT LIKE THIS"; 
}

 //in case you want to check for each of the row
 while($row = mysqli_fetch_array($query)) {
        if (empty($row)) {
            echo "NO RESULT LIKE THIS";
        } else {
            echo "AT LEAST ONE RESULT LIKE THIS"; 
        }
 }