2011年7月15日 星期五

在Windows 7之下MySQL安裝失敗的可能原因之一

最近買了台新NB,作業系統是 Windows 7,用起來跟之前的 Vista 不一樣吶(科科)。

為了移轉網站系統,很多東西都要重弄了。為了配合 Windows 7,我灌了 Apache 2.2.19 & PHP 5.3.5 & MySQL 5.5.14。安裝這些東西真的是很考驗耐性,NB安裝 Apache 和 PHP 都沒什麼太大的問題,唯獨 MySQL 一直灌不起來(很凸的說)。

因為 MySQL 灌失敗,所以就先移除安裝,再重新安裝,但結果還是失敗 =3= 。
這時又是 google 大神出馬的時候了... 找了一堆,結果都說沒灌乾淨,說什麼去 "執行" 那邊下指令就可以殺乾淨了,但是我用了,還是不行.. 結果還是找了大陸那邊的論壇才找到答案
 = ="

問題:MySQL無法正常安裝(前提:之前有安裝好(或到一半),然後移除安裝)

原因:即使你把安裝好的MySQL(包含一些相關資料夾)移除了,但是C槽底下有個隱藏資料夾 "ProgarmData",它裡面存放之前安裝 MySQL 的一些相關檔案,所以你怎麼重安裝都是失敗。

解決:手動把C槽底下的隱藏資料夾 "ProgarmData"裡面的 MySQL資料夾刪除就好了。



ps. 一切資源參考於網路再整理過,如有雷同或錯誤,不關我的事唷!!

2011年3月2日 星期三

(PHP) 遞補陣列

這文章是講關於陣列元素刪除後,如何將後面的陣列元素遞補上,簡而言之就是重新排序的意思。
看下列範例:

$ss[0]=a
$ss[1]=b
$ss[2]=c
unset $ss[1] ,重新排序後要變成下列模樣:

$ss[0]=a
$ss[1]=c

我找了一些關於 PHP 的 array 函數 ,找不到有哪個函數可以直接將刪除的陣列做遞補的動作(還是我眼力不好,找不到??)。反倒是看了一堆 array函數,還一直 try。反正,就東湊西湊被我湊出來了。說明如下:

$bagItem["a","b","c"]
unset($bagItem[1]);
刪除了key 1的結果:array([0]>a,[2]>c)

如果想要變成 array([0]>a,[1]>c)就用合併的,程式如下:

 for($i=0;$i<count($bagItem);$i++)
   $sort[$i]=$i;
 $bagItem=array_combine($sort,$bagItem);

說明:
1. 先用for迴圈(*count($bagItem)=$bagItem陣列還有多少個元素)去建立一個新的陣列,
 $sort["0","1"] ,$sort這個陣列作用在於給 $bagItem建立一個新的索引。
2. 用 array_combine去合併 $sort 和 $bagItem

如果想多瞭解array_combine,請google吧!


ps. 如有雷同或錯誤,不關我的事唷!!