PHP 中的「嘗試存取Bool 類型值的陣列偏移量」錯誤
錯誤「嘗試存取Bool 類型值的陣列偏>
錯誤「嘗試存取Bool 類型值的陣列偏移量」當您嘗試存取不存在或無效類型(特別是布林值)的陣列元素時,會發生「type bool」。
在提供的程式碼片段中,您正在執行查詢以檢查如果資料庫中已存在使用者名稱或電子郵件。如果查詢未傳回任何結果,則會將 false 指派給對應的變數($emailRes 或 $nameRes)。
當您嘗試存取 $nameRes 或 $emailRes 的使用者名稱或電子郵件鍵時,您會得到錯誤,因為它們都是布林值,而不是陣列。
解決方案:1.檢查是否存在:
$emailRes = $query->fetch(PDO::FETCH_ASSOC); if ($emailRes) { // Proceed to use $emailRes['Email'] }
2.指定預設值:
$emailRes = $query->fetch(PDO::FETCH_ASSOC); $email = $emailRes['Email'] ?? ''; // Default to empty string
3。使用 PDO 的 fetchColumn() 進行存在性檢查:
if ($query->fetchColumn()) { // Record exists } else { // Record does not exist }
4.一個查詢方法:
$query = $pdo->prepare("SELECT COUNT(*) FROM Users WHERE Username =:Username OR Email =:Email"); $query->execute([':Username' => $name, ':Email' => $email]); if ($query->fetchColumn()) { // Username or email already exist } else { // Username and email are both available }
以上是為什麼我在 PHP 中收到「嘗試存取 Bool 類型值的陣列偏移量」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!