顯示具有 mysql 標籤的文章。 顯示所有文章
顯示具有 mysql 標籤的文章。 顯示所有文章

2016年1月30日 星期六

mysql取代字串語法

The easiest way I have found is to dump the database to a text file, run a sed command to do the replace, and reload the database back into MySQL.
All commands are bash on Linux, from memory.
Dump database to text file
mysqldump -u user -p databasename > ./db.sql
Run sed command to find/replace target string
sed -i 's/oldString/newString/g' ./db.sql
Reload the database into MySQL
mysql -u user -p databasename < ./db.sql
Easy peasy.

2011年11月19日 星期六

dreamweaver PHP mysql 可以批次更新資料的方法!

底下所提的批次更新資料的方法,是建立在你必須對於DREAMWEAVER的基本更新資料的方法已經有一定的了解之後,才易看懂筆者所寫的內容。若你對DREAMWEAVER更新單筆資料的方法尚且不懂,則不建議你繼續看下去!
這邊筆者僅針對批次更改與單筆更改資料之主要差異處作說明而已:
image
一、首先如上圖,你必須對所有要更新資料的表單欄位之名稱後面加入陣列符如上圖中的score[]
image
二、當然更新資料所必須的隱藏欄位所指向的索引欄也須需如上圖中的index[]一樣加入[]
三、接著在伺服器行為裡加入更新資料(這邊因為一般的圖資料都有提到,所以就跳過,不細述了!)
四、最後在程式碼模式下找到更新資料的語法部份,例如(注意你的語法決對不可能完全與我的一樣,所以你必須視自己的狀況調整)
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  $updateSQL = sprintf("UPDATE all_data SET leader_study_1=%s, study_mark1=%s WHERE `index`=%s",
                       GetSQLValueString($_POST['score[]'], "int"),
                       GetSQLValueString($_POST['textfield[]'], "text"),
                       GetSQLValueString($_POST['index[]'], "int"));
  mysql_select_db($database_load, $load);
  $Result1 = mysql_query($updateSQL, $load) or die(mysql_error());
  $updateGoTo = "leader_study.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $updateGoTo));
}
改為
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
    $countNum=count($_POST['index']);
        for($i=0 ; $i<$countNum ; $i++){
  $updateSQL = sprintf("UPDATE all_data SET leader_study_1=%s, study_mark1=%s WHERE `index`=%s",
                       GetSQLValueString($_POST['score'][$i], "int"),
                       GetSQLValueString($_POST['textfield'][$i], "text"),
                       GetSQLValueString($_POST['index'][$i], "int"));
  mysql_select_db($database_load, $load);
  $Result1 = mysql_query($updateSQL, $load) or die(mysql_error());
        }
  $updateGoTo = "leader_study.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $updateGoTo));
}
注意上述的更改中,還要將原來語法中的[]刪處掉!
這樣一來才可以批次更新資料。

2011年7月26日 星期二

2010年9月7日 星期二

如何將相同延伸套件的資料從先前joomla1.0辛苦建立的資料轉移到joomla1.5裏面?

我的作法是首先確認在不同環境版本的同個套件在資料庫裏有同樣的資料表,如此才有機會以我的方式轉移資料到joomla1.5的環境裏。

首先將舊資料庫備份

可直接到資料庫的目錄裏以下這樣的指今:cp –a 資料庫目錄  新資料庫目錄

以centos為例,mysql資料庫的目錄路徑為  /var/lib/mysql

2010年8月23日 星期一

joomla 1.0升級成1.5版,mysql資料庫latin1轉utf8問題

相信 MySQL 的編碼對很多人來說 … 一直是個相當令人頭痛的問題 … 底下要記錄的是如何把資料庫的資料, 由 latin1 轉成 utf8..
一般 .. MySQL 裝起來後(用 rpm 安裝) ,系統的預設編碼是 latin1.
而很多人在安裝一些網頁的系統時,如 wordpress、LifeType、phpBB … 等等,都會選擇 utf8 。
這時 … 系統一樣可以正常運作 … 只是當用 phpmyadmin 進入管理資料庫時,就會發現 .. 怎麼中文字的部分都變成了歪七扭八 ..
或者一些鬼畫符的文字。如:凡事先從工作講起
image

2009年1月23日 星期五

MySQL線上回存

以mysqldump指令備份mysql資料庫者,若要回存整個資料庫,可用下面的指令回存:
mysql database_name -uroot -p < database_name.sql
這邊需注意的是,若建立備份時是以"--opt"或"--add-drop-table"為參數時,回存的動作是先將舊的 Table 先刪除,重建 Table 的結構後再把 Data 匯入,所以回存後,所有的資料會回到你當時備份那個時間點,因此在回存資料時,可以考慮把現有錯誤或不完整的 DB 先備份一份下來,以備不時之需,或是拿來比對錯誤的地方在那裡,當然你也可以把資料回存到另一個測試用的 DB 內,只要把上面指令的 DB 名稱改成你的測試用 DB 名稱即可.
使用這種回存方式, MySQL 服務不需停止,也不會動到其他正在使用的 DB ,在一些提供MySQL 服務的虛擬主機,可用這種方式作你自己的 DB 備份及回存.
另外,假如你是系統重建或是移機時,切需在新的 MySQL 內,新建一個空白 DB 後,才行作回存的工作,你可以用下面的指令建立:
mysqladmin -uroot -p create database_name