2008-12-24 112 views
1

我是PHP新手,已經安裝在Linux上啓動(也是一個新手)。 無論如何,PHP正在工作...PHP忽略mysql_connect請求

<? 
$myVar = "test"; 
echo($myVar); 
?> 

...工作得很好。

但是......

<? 

$dbhost = "localhost"; 
$dbuser = "myuser"; 
$dbpass = "mypass"; 
$dbname = "mydb"; 

echo($dbhost . "-" . $dbuser . "-" . $dbpass . "-" . $dbname); 

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to connect to MySQL"); 
print $conn; 

mysql_close($conn); 

phpInfo(); 
?> 

...什麼都不做。沒有錯誤,沒有。它就好像代碼甚至不在那裏。

任何幫助?

回答

4

嘗試做與數據庫服務器進行通信如下:

  1. 首先確保display_errors已在您的php配置文件中打開。還要設置error_reporting的級別以顯示所有錯誤,包括strict(error_reporting = E_ALL | E_STRICT)。進行更改後,重新啓動Web服務器。
  2. 運行phpinfo(),並檢查mysql擴展是否已安裝並正常工作。如果不確定你在php配置文件中取消註釋(再一次,記住在每次更改配置文件後重新啓動apache)。
  3. 在這一點上MySQL應該被加載和工作,並且你應該能夠從錯誤中知道(如果它仍然存在)什麼是問題。
  4. 也嘗試dumping連接結果($ conn)的內容以查看它包含的內容。
  5. 一般來說,我建議使用long php標籤(<?php而不是<?),因爲它更具可移植性(默認情況下PHP 5安裝中的短標籤是關閉的)。
+0

好的,這是一個開始。啓用錯誤,並沒有任何東西。但phpinfo()告訴了我以下內容。在輸出中沒有任何地方發現mysql,除了在配置命令部分,我看到--without-mysql。 我assumint這是自我解釋。但是,如何打開mysql? – 2008-12-24 19:12:36

1

如果它什麼都不做,那不就是說它連接好嗎?你期望的結果是什麼?

你可以嘗試

error_reporting(E_ALL); 
$conn = mysql_connect("localhost", "myusername", "mypassword"); 
if(!$conn) { 
    echo 'Unable to connect'; 
} else { 
    echo 'Connected to database'; 
} 
var_dump($conn); 

編輯:尋址評論說你有一個MySQL查詢設置,如果你沒有看到「成功」這意味着什麼是錯的查詢。加入到上述

$sth = mysql_query("SELECT * FROM tablename"); 
if(!$sth) { 
    echo 'unable to query: ' . mysql_error(); 
} else { 
    echo 'success'; 
} 
+0

我有if語句下 如果(的mysql_query( 「SELECT * FROM表」)){ 打印 「成功」; } – 2008-12-24 19:04:24

1

是否有更多的代碼比你顯示我們?您剛建立的連接塊。如果成功,你什麼也看不到,你必須用$conn來做點事情。

要確認,請嘗試將密碼更改爲故意錯誤的值,然後查看是否出現錯誤。如果你這樣做,代碼工作得很好。

0

連接到數據庫

$conn = mysql_connect("localhost", "myusername", "mypassword") or die("Unable to connect"); 

將沒有(可見(的結果,如果連接被成功地做。然而,一旦你運行該語句,你可以使用其他MySQL功能,使化妝數據庫查詢。

連接到數據庫告訴你的程序「哎,我想談談這個數據庫」。

0

此代碼是爲了建立一個數據庫連接,沒有別的什麼你期望看到嗎?

試試這個

<?php 
$conn = mysql_connect("localhost", "myusername", "mypassword") 
or die("Unable to connect"); 
print("code sample"); 

print $conn; 

?> 

它應該打印你喜歡的東西「資源#1」 ......

然後你可以使用該連接

1

嘗試增加給你的代碼的頂部:

error_reporting(E_ALL);