求解PHP無法串連mysql問題 線上等

來源:互聯網
上載者:User
本機是win7 系統
php版本:PHP Version 5.2.6
apache 2.2
mysql:5.1.40

本地測試,PHP可以正常 但是唯一的就是不能串連上mysql 也不能使用phpmyadmin

本地測試在IE下直接就是錯誤頁, 在360 下會提示一個:您指定的網頁無法訪問! 錯誤類型:串連失敗

請高手幫解決,重謝...


回複討論(解決方案)

你串連MYSQL的語句發出來看一下吧。

 

先開啟服務,看看你的mysql的服務是否已經啟動了

下載個Navicat建立?接測試一下
主機名稱或ip你填寫:localhost
連接埠:3306
使用者名稱和密碼根據你的設定填寫,預設使用者名是:root

去服務裡查看mysql已啟動

我用的是EMS SQL MANAGER 2005 lite for mysql 是可以連上資料庫的,
用的是localhost
連接埠3306
使用者名稱root
密碼admin

這個是可以串連上資料庫的。

$link=mysql_connect('localhost','root','admin');
if(!$link) echo "fail".mysql_error(); //看看輸出什麼錯誤資訊
else echo "success";
?>

 

換上

 

後,運行此程式段出現Internet Explorer 無法顯示該網頁


你用My Code串連一下試試
$Conn=mysql_connect("localhost","root","admin",1) Or Die('Database server connection failed, check the Config configuration is correct!');



$pdo = New PDO('mysql:host=localhost;dbname=資料表名稱','root','admin');

我粘上無法顯示該網頁的代碼

                              Internet Explorer 無法顯示該網頁                                   
 

Internet Explorer 無法顯示該網頁

您可以嘗試以下操作:

診斷串連問題

更多資訊

此問題可能是由下列各種問題導致的:

  • 網際網路連線已丟失。
  • 該網站暫時不可用。
  • 無法串連到網域名稱伺服器(DNS)。
  • 網域名稱伺服器(DNS)沒有該網站的域的列表。
  • 在地址中可能存在鍵入錯誤。
  • 如果這是 HTTPS (安全)地址,請單擊“工具”菜單下的“Internet 選項”,再單擊“進階”選項卡,然後請檢查以確保“安全”部分下的 SSL 和 TLS 協議已啟用。

對於離線使用者

仍可查看已訂閱的源和最近查看過的一些網頁。
若要查看已訂閱的源

  1. 單擊“收藏夾”按鈕,單擊“源”,然後單擊希望查看的源。

查看最近訪問過的網頁(不查看所有頁面)

  1. 單擊“工具”,然後單擊“離線工作”。
  2. 單擊“收藏夾”按鈕,單擊“記錄”,然後單擊希望查看的頁面。

ry

我粘上無法顯示該網頁的代碼

HTML code






這個對於解決問題沒有任何協助,不過就是一個404錯誤頁面

404錯誤,訪問的檔案不存在,或者你輸入的URL不對。

環境沒有搭好吧

404錯誤,訪問的檔案不存在,或者你輸入的URL不對。

頁面一點開就運行中.... 然後就出現該問題。。 該頁面下跟mysql無關的都可以運行。 我訪問phpmyadmin 這個也是,可以進入到登陸頁面,輸入使用者名稱與密碼後,就會運行...然後出現該頁面,無法顯示。。。





環境沒有搭好吧

php能運行。 就是不能訪問mysql....... 要怎麼搭。。 根據網上的php.ini這個檔案已經有過n次更改了,一直訪問不了

引用 10 樓 bsk_bg 的回複:

我粘上無法顯示該網頁的代碼

HTML code








我兼著細心的態度,沒放過一點點痕迹...

你只需開啟php的錯誤顯示功能,就什麼都知道了

實在不行你就下載Integration Environment吧
http://www.php100.com/html/download/server/2010/1226/wamp21a.html
簡單實用,不用配置ini就行.我也在用這個

你只需開啟php的錯誤顯示功能,就什麼都知道了

php.ini已配置著顯示錯誤呢。 就是不顯示,不知道原因在哪塊






實在不行你就下載Integration Environment吧
http://www.php100.com/html/download/server/2010/1226/wamp21a.html
簡單實用,不用配置ini就行.我也在用這個

謝謝了,我想先弄明白這一塊,畢竟要使用PHP了,弄不明白心裡不太舒服

$link = mysql_connect('localhost','root','admin') or die(mysql_error());

如果這樣寫出現找不到網頁的情況,就表示你的 php 沒有開啟錯誤顯示功能

$link = mysql_connect('localhost','root','admin') or die(mysql_error());

如果這樣寫出現找不到網頁的情況,就表示你的 php 沒有開啟錯誤顯示功能

寫成你這樣,網頁顯示空白,查看源碼也無任何資訊。。



開啟錯誤功能我更改的是如下:

;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR;;   - Show all errors except for notices and coding standards warnings;error_reporting  =  E_ALL & ~E_NOTICE; Print out errors (as a part of the output).  For production web sites,; you're strongly encouraged to turn this feature off, and use error logging; instead (see below).  Keeping display_errors enabled on a production web site; may reveal security information to end users, such as file paths on your Web; server, your database schema or other information.;; possible values for display_errors:;; Off        - Do not display any errors; stderr     - Display errors to STDERR (affects only CGI/CLI binaries!);;display_errors = "stderr";; stdout (On) - Display errors to STDOUT;display_errors =On

上面的本想加紅。結果成代碼。。

;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
;
; - Show all errors except for notices and coding standards warnings
;
error_reporting = E_ALL & ~E_NOTICE

; Print out errors (as a part of the output). For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
;
; possible values for display_errors:
;
; Off - Do not display any errors
; stderr - Display errors to STDERR (affects only CGI/CLI binaries!)
;
;display_errors = "stderr"
;
; stdout (On) - Display errors to STDOUT
;
display_errors =On

display_startup_errors = On試試。

display_startup_errors = On試試。

這一項也開著呢。

你需要在 phpinfo() 的結果頁面中查看 display_errors 項

$dbbase="localhost";
$dbname="root";
$dbpass="1234";
$id=mysql_connect($dbbase,$dbname,$dbpass);
$ok=mysql_select_db("lvyou",$id);
mysql_query('SET names "utf8"');
?>

這個是我常用的 修改測試一下 一般不會有問題。

你需要在 phpinfo() 的結果頁面中查看 display_errors 項
對,用此方法輸出一下看看php的狀況

把地址欄的http://localhost/訪問MYSQL的PHP頁地址改換為:http://127.0.0.1/訪問MYSQL的PHP頁地址
或者顛倒過來試一下!

根據以上幾樓改動測試。問題依舊未解決

你需要在 phpinfo() 的結果頁面中查看 display_errors 項
我粘上我的phpinfo()頁面的一些結果上來

ConfigurationPHP CoreDirective Local Value Master Value allow_call_time_pass_reference On On allow_url_fopen On On allow_url_include Off Off always_populate_raw_post_data Off Off arg_separator.input & & arg_separator.output & & asp_tags Off Off auto_append_file no value no value auto_globals_jit On On auto_prepend_file no value no value browscap no value no value default_charset no value no value default_mimetype text/html text/html define_syslog_variables Off Off disable_classes no value no value disable_functions no value no value display_errors On On display_startup_errors On On doc_root no value no value docref_ext no value no value docref_root no value no value enable_dl On On error_append_string no value no value error_log no value no value error_prepend_string no value no value error_reporting 6135 6135 expose_php On On extension_dir c:\php\ext c:\php\ext file_uploads On On highlight.bg #FFFFFF #FFFFFF highlight.comment #FF8000 #FF8000 highlight.default #0000BB #0000BB highlight.html #000000 #000000 highlight.keyword #007700 #007700 highlight.string #DD0000 #DD0000 html_errors Off Off ignore_repeated_errors Off Off ignore_repeated_source Off Off ignore_user_abort Off Off implicit_flush Off Off include_path .;C:\php5\pear .;C:\php5\pear log_errors Off Off log_errors_max_len 1024 1024 magic_quotes_gpc On On magic_quotes_runtime Off Off magic_quotes_sybase Off Off mail.force_extra_parameters no value no value max_execution_time 30 30 max_input_nesting_level 64 64 max_input_time 60 60 memory_limit 2M 2M open_basedir no value no value output_buffering no value no value output_handler no value no value post_max_size 8M 8M precision 12 12 realpath_cache_size 16K 16K realpath_cache_ttl 120 120 register_argc_argv On On register_globals Off Off register_long_arrays On On report_memleaks On On report_zend_debug On On safe_mode Off Off safe_mode_exec_dir no value no value safe_mode_gid Off Off safe_mode_include_dir no value no value sendmail_from no value no value sendmail_path no value no value serialize_precision 100 100 short_open_tag On On SMTP localhost localhost smtp_port 25 25 sql.safe_mode Off Off track_errors Off Off unserialize_callback_func no value no value upload_max_filesize 2 2 upload_tmp_dir no value no value user_dir no value no value variables_order EGPCS EGPCS xmlrpc_error_number 0 0 xmlrpc_errors Off Off y2k_compliance On On zend.ze1_compatibility_mode Off Off 

繼續等待結果..............

是不是許可權問題?

記錄中

重新安裝php 和apache 到其他非c盤看看.包括mysql.
沒必要在這種事情上糾結.

這種情況很簡單,只需要把 php.ini中“;extension=php_mysql.dll”前的“;”去掉,載入mysql模組。重要的是配置Apache把其中的httpd.conf 中加入“ phpinidir “E:/PHP””就是你的安裝路徑

未解決....................

在IE的選項裡把友好的HTTP錯誤資訊那個勾去掉。

這種情況很簡單,只需要把 php.ini中“;extension=php_mysql.dll”前的“;”去掉,載入mysql模組。重要的是配置Apache把其中的httpd.conf 中加入“ phpinidir “E:/PHP””就是你的安裝路徑
正解!

呵呵,很簡單的問題麼。php連結不上mysql 大都是php.ini 中dll 檔案沒有開啟.phpinfo 看下就知道有沒有連結上。LZ 啊 多學習啊

呵呵,很簡單的問題麼。php連結不上mysql 大都是php.ini 中dll 檔案沒有開啟.phpinfo 看下就知道有沒有連結上。LZ 啊 多學習啊

這個在前幾樓已經做答,能開啟的都開啟了, phpinfo我已經貼出來了 串連資料庫的dll全開了

引用 34 樓 libystu 的回複:

這種情況很簡單,只需要把 php.ini中“;extension=php_mysql.dll”前的“;”去掉,載入mysql模組。重要的是配置Apache把其中的httpd.conf 中加入“ phpinidir “E:/PHP””就是你的安裝路徑

正解!

這個問題在前幾樓也已經提過了。不是這麼簡單吧, 這些象你說的,我全都是做過的。

首先檢查你的php的設定檔是不是都配置好了,有沒有漏掉的
然後檢查mysql的服務開啟了沒
按照mysql的過程中,有沒有設定錯誤
阿帕奇有沒有設定成功

首先檢查你的php的設定檔是不是都配置好了,有沒有漏掉的
然後檢查mysql的服務開啟了沒
按照mysql的過程中,有沒有設定錯誤
阿帕奇有沒有設定成功

經檢查需要的都配置好了

PHP 程式可以通過阿帕奇 運行 這個說明 PHP運行環境沒有問題

mysql服務已啟動, 並且可以串連使用, 唯一不行的就是 PHP 不能串連 mysql

apache/logs/error.log
看一下,能不能發現問題

請測試能串連資料庫沒有?

如果不能,就說明資料庫安裝不成功嘛。

未解決....................
是沒在開發環境下吧 。。。。

C:\php\ext 加入環境變數 php

先測試下資料庫是否正常運行吧,兩個辦法:
1.命令列下運行telnet localhost 3306 看看能連上不?
2.命令列下進入到mysql安裝目錄下的bin目錄,運行 mysql -u root -p 然後輸入你的root使用者密碼,如果能連上說明mysql運行正常。

除了以上檢查,你還可以看看apache的日誌

libmysql.dll 是PHP裡面的而不是MYSQL裡面的拷貝到System32

我也遇到這問題了~~~真暈了~~~

樓主,你的問題解決了沒有,我也遇到這個問題了。求解!!!!!!!!!!!

1.extension_dir = ".\ext"
2.php的目錄要加到環境變數 path ,目的是引用那個mysqllib.dll的東西。
3.extension=php_mysql.dll 注析去掉
4.display_errors = On 方便調式,最好開啟,不然就只有404錯誤,看到undefine function就是前面的問題。

要是apache能訪問一般php頁,資料庫也應該能連。

記得改完以上設定後,一定要重啟apache,就行了。用phpinfo能看到mysql模組存在(我的作業系統不需要重啟)。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.