第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何檢查表是否為空或者我的查詢是否與任何結(jié)果都不匹配

如何檢查表是否為空或者我的查詢是否與任何結(jié)果都不匹配

PHP
largeQ 2023-09-08 14:09:55
我想要一個(gè)僅在表中沒有行或現(xiàn)有行與我的輸入中的特定參數(shù)不匹配時(shí)運(yùn)行的 if 語句。我嘗試了這樣的方法:$currentURL = $post["media_url"];$sql = "SELECT * FROM images WHERE imageURL = '$currentURL'";$result = $conn->query($sql);if(!$result){ ... }根據(jù)我的想法,這應(yīng)該在我第一次想向數(shù)據(jù)庫添加內(nèi)容并且 $currentURL 在現(xiàn)有數(shù)據(jù)中不存在時(shí)執(zhí)行 if 語句。但這似乎并不像我想象的那樣有效。你會怎么做?也許我處理 $result 是錯(cuò)誤的,因?yàn)槿绻以?phpmyadmin 中測試 sql 查詢,這會顯示正確的結(jié)果(沒有行)。
查看完整描述

3 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

正確的方法是使用準(zhǔn)備好的語句并將結(jié)果提取到數(shù)組中。您可以使用以下命令將所有行提取到數(shù)組中fetch_all()


$stmt = $conn->prepare("SELECT * FROM images WHERE imageURL = ?");

$stmt->bind_param('s', $post["media_url"]);

$stmt->execute();

// Get result and then fetch all rows from the result object

$result = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);


// Then check if you have any rows at all using a simple if statement

// Negate it using ! to check if the array is empty

if (!$result) {

    // no results found

}


查看完整回答
反對 回復(fù) 2023-09-08
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

我猜,那$conn是一個(gè) PDO 連接?在這種情況下,該方法$conn->query()返回 PDOStatement 類型的對象。請參閱https://www.php.net/manual/de/class.pdostatement.php


該方法不返回結(jié)果集。


相反,您可以使用 PDOStatement 對象來獲取結(jié)果:


$currentURL = $post["media_url"];

$sql = "SELECT * FROM images WHERE imageURL = '$currentURL'";

$result = $conn->query($sql)->fetchAll();


if(empty($result))

{ ... }

如果您使用 mysqli,返回的對象query()是這樣的: https: //www.php.net/manual/en/class.mysqli-result.php


所以代碼是:


$currentURL = $post["media_url"];

$sql = "SELECT * FROM images WHERE imageURL = '$currentURL'";

$result = $conn->query($sql)->fetch_all(MYSQLI_ASSOC);


if(empty($result))

{ ... }

另請注意:您的代碼非常不安全!您應(yīng)該使用準(zhǔn)備好的語句來防止 sql 注入:


$currentURL = $post["media_url"];

$sql = "SELECT * FROM images WHERE imageURL = :currentUrl";

$stmt = $conn->prepare($sql);

$stmt->execute(['currentUrl' => $currentURL]);

$result = $stmt->fetchAll();


if(empty($result))

{ ... }


查看完整回答
反對 回復(fù) 2023-09-08
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

  1. 清理輸入以防止 SQL 注入(或更好 - 使用準(zhǔn)備好的語句和參數(shù)綁定)

$sql = "SELECT * FROM images WHERE imageURL = '".$conn->real_escape_string($currentURL)."'";

  1. mysqli 查詢成功時(shí)返回 true(即使空數(shù)據(jù)集也成功),請使用 num_rows 代替:

if ( $result->num_rows === 0 ) { ... }


查看完整回答
反對 回復(fù) 2023-09-08
  • 3 回答
  • 0 關(guān)注
  • 144 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號