2017/4/15 藝起來四月活動~[從尼泊爾出發.世界冒險之旅] 講師:陳韻文(Sabrina C. 精品坊創辦人)

藝起來四月活動~[從尼泊爾出發.世界冒險之旅]
講師:陳韻文(Sabrina C. 精品坊創辦人)

時間:2017/4/15(六)14:00-17:00
地點:國立彰化師範大學-進德校區-圖書館地下室(多功能會議室)
報名網址:https://goo.gl/KzZ6DH

Sabrina C

Sabrina C. talk

Posted in Education | Leave a comment

Celerbrate Double Ten, or not?

Today is 10th Oct., so called Double Day, or  National Day of the ROC (Republic of China). In fact, this China is not that China. model-2015-10-10-09-47-52

Posted in Politics | Leave a comment

Try

Posted in Uncategorized | Leave a comment

解決MySQL -1251 – Client does not support authentication protocol requested by server

用user帳戶連接mysql數據庫時提示有錯誤如下:
1251 –  Client does not support authentication protocol requested by server; consider upgrading MySQL client
—————————————————————
在更新到 4.1.17 版本的 MySQL 後,發現需要使用 mysqli extension方能正常使用資料庫,否則會出現
1251 –  Client does not support authentication protocol requested by server; consider upgrading MySQL client  的提示,在給 root 加上密碼前還是可以使用 mysql extension的,可是給  root 加上密碼後就出現了上述客戶端版本太低的提示

目前已知解決方法:

先用root登錄MySQL database,執行

mysql>set password for user1@”localhost”=old_password(‘yourPassword’);

原因是因為使用的MySQL 版本中使用了新的密碼驗證機制,這需要客戶端的版本要在4.0以上,原來的密碼函數被改為 old_password(),這樣使用password()生成的密碼在舊的版本上的客戶端就不能用了,而PHP中的MySQL客戶端都是3.23的 (當然,mysqli的擴展除外),問題就在這了。

來源http://community.csdn.net/expert/topicview1.asp?id=3541530

Posted in Programming, Technology | Leave a comment

PHP + Oracle 的成功經驗

大部分的情況使用者都是採用PHP + MySQL。 但難免需要PHP + Oracle的情況。可惜網路上的資訊都還需要好好的消化及仔細設定。

以下是個人”終於”成功的經驗。

 

1. 讓PHP server可以執行oci的指令。需要新增dll。

請下載 Oracle Express Edition (Oracle 載就有~)

下載安裝完後 去它的資料夾裡的bin資料夾找這三個dll:

oci.dll
ociw32.dll
oraocixe10.dll

把”C:\oraclexe\app\oracle\product\11.2.0\server\bin” 路徑添加到 “PATH” 中 (PATH在環境變數裡~)

2. 設定 PHP.ini

在PHP5的資料夾內找出PHP.ini

開啟PHP.ini 並將以下的註解刪掉

;extension=php_oci8.dll
;extension=php_oracl.dll

存檔後 重新啟動Apache

並開啟phpinfo 查看裡面是否有 oci8 的部分 (如果有表示成功~)

在來就是重新開機 (讓新設的”PATH”變數生效)

3. PHP連結Oracle的語法

$ora_db_host = “120.110.xxx.xxx”;  //IP or host name
$ora_db_port = “1521”;  //port number, default 1521
$ora_db_sid = “orcl”;  //sid, default orcl

$ora_db_user = “HR”; // user id
$ora_db_pswd = “xxxxxxx”; // password

$ora_db = “(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = $ora_db_host)(PORT = $ora_db_port))(CONNECT_DATA = (SID = $ora_db_sid)))”;   //

$charset = “UTF8”;  //charset
//$charset = “AL32UTF8”;

$conn = oci_connect($ora_db_user, $ora_db_pswd, $ora_db, $charset);

//$conn = oci_connect(‘hr’, ‘welcome’, ‘localhost/XE’);

if (!$conn) { //判斷是否連結成功
$e = oci_error();
trigger_error(htmlentities($e[‘message’], ENT_QUOTES), E_USER_ERROR);
}
echo “Server Version: ” . oci_server_version($conn) .”<br />”;
$sql = “SELECT * FROM employees where rownum <=20”;  //SQL statement

// Prepare the statement
$stid = oci_parse($conn, $sql);
if (!$stid) {
$e = oci_error($conn);
trigger_error(htmlentities($e[‘message’], ENT_QUOTES), E_USER_ERROR);
}

// Perform the logic of the query
$r = oci_execute($stid);
if (!$r) {
$e = oci_error($stid);
trigger_error(htmlentities($e[‘message’], ENT_QUOTES), E_USER_ERROR);
}

 

// Fetch the results of the query
echo “<table border=’1′>\n”;

//列印表頭
$ncols = oci_num_fields($stid);
echo “<tr>”;
for ($i = 1; $i <= $ncols; $i++) {
$column_name = oci_field_name($stid, $i);
echo “<th>”. $column_name . “</th>”;
}
echo “</tr>\n”;
//列印列
while ($row = oci_fetch_row($stid)) {

echo”<tr>\n”;
for($i = 0; $i < $ncols; $i++) {
echo “<td>” . $row[$i] . “</td>\n”;
}
echo “</tr>\n”;
}
echo “</table>\n”;
// 另一種列印方式
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo”<tr>\n”;
foreach ($row as $item) {
echo ” <td>” . ($item !== null ? htmlentities($item, ENT_QUOTES) : “&nbsp;”) . ”              </td>\n”;
}
echo “</tr>\n”;
}
echo “</table>\n”;

oci_free_statement($stid);
oci_close($conn);

 

 

主要參考: http://a159874a.pixnet.net/blog/post/12647770-php-%E9%80%A3%E4%B8%8A-%E9%81%A0%E7%AB%AF-oracle-%E7%9A%84-%E6%AD%A5%E9%A9%9F-~-(%E7%8F%BE%E5%9C%A8%E6%98%AF%E5%87%8C%E6%99%A8%E4%B8%89%E9%BB%9E

Posted in Programming | Tagged , | Leave a comment