2010-01-05 44 views
0

我的代碼有什麼問題?我不斷收到此錯誤:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in functions.php on line 4 error reading database「警告:mysql_query():提供的參數不是有效的MySQL-Link」 - 爲什麼?

function gameTableCheck($gn) 

{ 

    $result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or die ('error reading database'); //This is line 4 
    if (mysql_num_rows ($result)>0) { 
     return true; 
    } else { 
     return false; 
    } 
} 

if(gameTableCheck($page) === false) { 
     echo "MAO"; 
     die(); 
    } 

回答

4

$db是不是裏面的功能gameTableCheck一個局部變量,你需要在函數的頂部添加global $db;聲明。

+2

或(更好的IMO)將$ db作爲參數傳遞給函數 – fvu 2010-01-05 11:37:30

+1

這當然假設在全局範圍內有一個「$ db」。 – 2010-01-05 11:38:59

+1

我忘了,嘿,傻我! – Strawberry 2010-01-05 12:03:58

1

那麼我會說$ db沒有正確初始化。你想要做的就是用mysql_select_db這樣:

<?php 
$host = "localhost"; //database location 
$user = "user"; //database username 
$pass = "pass"; //database password 
$db_name = "thename"; //database name 

//database connection 
$link = mysql_connect($host, $user, $pass); 
mysql_select_db($db_name); 

//sets encoding to utf8 
mysql_query("SET NAMES utf8"); 
?> 

(代碼段via

如果您確實需要對每個查詢出於某種原因指定的數據庫變量,嘗試尋找是否:

  • 的$ DB變量設置正確

  • 的$ DB變量是你的函數的範圍之內。 Consider making it global如果需要,或將它傳遞給函數作爲參數

1

我認爲$db是不是有效的數據庫連接。 您是否事先連接到數據庫?該函數的範圍中是否有$db

在調用函數之前,您可以使用global $db使其具有全局範圍。

4

的問題是在這裏:mysql_query("SHOW TABLES LIKE '$gn'",$db)

有範圍沒有$db

如果您只使用一個數據庫連接並且已經連接,則可以刪除此參數。

0

找到你可以嘗試把mysql_error錯誤()

$result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or exit(mysql_error()); 
0

gameTableCheck()函數沒有線索$db變量是什麼。由於PHP沒有動態範圍設定,因此您必須在函數內部聲明該變量爲global(如果它是全局變量),或者將其作爲參數傳遞給函數調用。

相關問題