廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 6333 個閱讀者
 
<<   1   2  下頁 >>(共 2 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
gavintom 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[PHP][討論] PHP連MYSQL的相關問題...
大大們好...

小弟我有個問題...

一般我們用php連mysql 都是用 mysql_connect or mysql_pconnect

但我問題來了...
不管是用 mysql_connect or mysql_pconnect
萬一 那台主機server沒有開啟..而我們用它們去connect
例如:
$con = @mysql_connect("abcdef.dslcity.net", "aaaaa", "22222") or die("無法對MYSQL連線");
萬一連不上 "abcdef.dslcity.net" server的話
就會停很久...才出現無法連線...而且...而且...以下的程式都不能再執行下去...
就停在無法連線那行...
這樣子有辦法決解這問題嗎??

另外...所以這問題我就想說...php有沒有像網路能用ping的指令
我想說..先用ping abcdef.dslcity.net 若ping它是能ping到的
才執行 mysql_connect or mysql_pconnect
不然就跳過對mysql_connect or mysql_pconnect 的執行...
而我又找不到php類似能ping的東西來使用

麻煩大大及高手指導一下

感恩^^



獻花 x0 回到頂端 [樓 主] From:台灣數位聯合 | Posted:2005-08-08 01:05 |
hanklu 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x9 鮮花 x225
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

如果資料庫連結失敗以後

您希望出現什麼的動作

你可以考慮直接連結顯示其他不需要資料庫的網頁


獻花 x0 回到頂端 [1 樓] From:台灣中華電信 | Posted:2005-08-08 13:45 |
gavintom 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用hanklu於2005-08-8 13:45發表的 :
如果資料庫連結失敗以後

您希望出現什麼的動作

你可以考慮直接連結顯示其他不需要資料庫的網頁

我只是想要做到在connect 能先判別那台server是否有開啟

若那台server沒開啟的話就不要讓mysql去connect 就這樣


獻花 x0 回到頂端 [2 樓] From:台灣數位聯合 | Posted:2005-08-08 17:11 |
xxxzzz
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x46
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

試了一下
下面的程式或許可以符合您的需求
$timeout設定多久無法連線即放棄連線
還有3306是MySQl預設的port
如果您有改過...記得要改喔

複製程式
<?php
$timeout=2;
$fp=fsockopen("MySQL server",3306,&$errno,&$errstr,$timeout);
if(!$fp){
echo "資料庫連線逾時!";
}else{
fclose($fp);
$link=mysql_connect("MySQL server","帳號", "密碼") or die("無法對MYSQL連線");
}
?>

此文章被評分,最近評分記錄
財富:100 (by hanklu) | 理由: 感謝提供程式


獻花 x0 回到頂端 [3 樓] From:台灣亞太線上 | Posted:2005-08-10 02:12 |
gavintom 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

問一下哦
$fp=fsockopen("MySQL server",3306,&$errno,&$errstr,$timeout);
這行中的
&$errno &$errst這兩個東西是什麼呢??

要丟什麼值進去呢??r


獻花 x0 回到頂端 [4 樓] From:台灣數位聯合 | Posted:2005-08-10 08:16 |
gavintom 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

另外我在跑時候會出現以下這問題
=================================
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\appserv\www\ui\test.php on line 11

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\appserv\www\ui\test.php on line 11
=====================================================
而line 11
就是 $fp=fsockopen("MySQL server",3306,&$errno,&$errstr,$timeout);
這一行


獻花 x0 回到頂端 [5 樓] From:台灣數位聯合 | Posted:2005-08-10 08:23 |
hanklu 會員卡
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x9 鮮花 x225
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

allow_call_time_pass_reference 要再phpini裡設定 true

我還在研究中 表情


獻花 x0 回到頂端 [6 樓] From:台灣中華電信 | Posted:2005-08-10 10:24 |
xxxzzz
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x46
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

$fp=fsockopen("MySQL server",3306,&$errno,&$errstr,$timeout);
的 &$errno 和 &$errstr 不用丟值進去
那是fsockopen的執行結果
可以echo $errno$errstr 看出來...看有沒有錯誤
因為我是直接參考fsockopen()函式寫的
http://www.php5.idv.tw/modules.ph...=show&shid=492
沒發現有時要如版大說的要改php.ini裡的 allow_call_time_pass_reference成 on 才能正常執行

如果不想改php.ini
也可以直接改成
$fp=fsockopen("MySQL server",3306,$errno,$errstr,$timeout);
不要用&$errno 和 &$errstr也是可以

此文章被評分,最近評分記錄
財富:100 (by hanklu) | 理由: 感謝熱心回答


獻花 x1 回到頂端 [7 樓] From:台灣亞太線上 | Posted:2005-08-10 13:46 |
gavintom 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

感謝大大們的指教....

我這部份test 成功了

是採取 不要用&$errno 和 &$errstr 的方式

感恩


獻花 x0 回到頂端 [8 樓] From:台灣數位聯合 | Posted:2005-08-10 23:11 |
gavintom 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x5
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

另外..我有個問題但好久都沒人回

不知這裡有沒有大大知道該如何解決呢...

網址
http://bbs.mychat.to/read.php?tid=360931


獻花 x0 回到頂端 [9 樓] From:台灣數位聯合 | Posted:2005-08-12 00:16 |

<<   1   2  下頁 >>(共 2 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.052270 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言