2012-07-16 41 views
0

連接到數據庫我曾嘗試用PHP連接到我的數據庫,但已經完全失敗;(我不斷收到這樣的:「PHP公告:未定義的變量:CONN」我已經試過每個以下內容:不能與mysqli的,mysqli_connect,或PDO

$conn = new PDO("mysql:host=localhost;dbname=ar_data", 'login', 'pass'); 
$conn = mysqli('localhost', 'login', 'pass', 'dbname') or die("error" :.mysqli_connect_error()); 
$conn = mysqli_connect('localhost', 'login', 'pass', 'ar_data') or die("error" :.mysqli_connect_error()); 

後,我試過,最後一個我得到這個在var_dump($conn)

object(mysqli)#17 (18) { ["affected_rows"]=> int(0) ["client_info"]=> string(78) 
"mysqlnd 5.0.8-dev - 20102224 - $Id: SOME_VALUE_I_AM_CENSORING $" 
["client_version"]=> int(50008) ["connect_errno"]=> int(0) ["connect_error"]=> NULL 
["errno"]=> int(0) ["error"]=> string(0) "" ["field_count"]=> int(0) ["host_info"]=> 
string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> 
string(6) "5.5.25" ["server_version"]=> int(50525) ["stat"]=> string(140) "Uptime: 477847 
Threads: 6 Questions: 202259 Slow queries: 1 Opens: 1454 Flush tables: 1 Open tables: 10 
Queries per second avg: 0.423" ["sqlstate"]=> string(5) "00000" 
["protocol_version"]=> int(10) 
["thread_id"]=> int(1506) ["warning_count"]=> int(0) } 

而且我一直在使用的用戶不具有權限的ar_data數據庫,它會給我試過如預期的那樣錯誤。如果我做var_dump($conn)正好在mysqli_prepare($conn, $sql)之前,那麼它將打印NULL。我如何連接到數據庫?

注:我從參數conn到其他瓦爾更名櫃面有人得到改變,但仍然相同的行爲。我也有Drupal的7和WordPress安裝(我想他們只是使用基本mSQL的連接)

UPDATE:

整個文件:https://dl.dropbox.com/u/6688861/phpconn.txt

+1

這是可能的,你遇到的範圍問題。 – 2012-07-16 21:15:21

回答

1

最後var_dump表示連接工作正常。你的問題是,你指的是在ValidateForm()功能$conn沒有在該函數聲明global $conn

+0

我有一個綁定參數:'mysqli_stmt_bind_param($ stmt,'ssssssissssssssss',$ lname,$ fname,$ email,$ addr,$ city,$ state,$ zip,$ phone,$ affiliation,$ prof_role,$ _SERVER ['REMOTE_ADDR'],枚舉($ abc),枚舉($ ace),枚舉($ carr),枚舉($ ema),枚舉($ tuac),枚舉($最後));'enum成爲一個問題? – Ray 2012-07-16 21:15:49

+1

'枚舉()'是不是一個標準的PHP函數,但是這不是你的問題......你的問題確實是一個缺少'global'。 – duskwuff 2012-07-16 21:27:49

+0

不,它不是。連接被聲明爲頁面的頂部,在任何函數外面。 – Ray 2012-07-16 21:29:21

0

你的連接是在這最後的結果很好。如果您的連接無法正常工作,您將無法獲取MySQL服務器信息。你在哪裏得到與此調用相關的未定義變量錯誤?可能有更多的上下文。

+0

正在$ stmt = mysqli_prepare($ conn,$ sql); – Ray 2012-07-16 21:19:17