php mysql 教學
转载自:http://austintodo.pixnet.net/blog/post/23821431-php---mysql-%E6%95%99%E5%AD%B8
這邊有個php mysql 教學的網站
http://www.php-mysql-tutorial.com/
簡單直覺的方式
<?php $dbhost = '127.0.0.1'; $dbuser = 'mysql_user'; $dbpass = 'mysql_password'; $dbname = 'mysql_databaseName'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection'); mysql_query("SET NAMES 'utf8'"); mysql_select_db($dbname); $sql = "SELECT COUNT(*) as total FROM `FileList` WHERE `class` = 0;"; $result = mysql_query($sql) or die('MySQL query error'); while($row = mysql_fetch_array($result)){ echo $row['name']; } ?>
其中以下四個變數是要設定你的mysql相關設定
$dbhost = '127.0.0.1'; $dbuser = 'mysql_user'; $dbpass = 'mysql_password'; $dbname = 'mysql_databaseName';
這邊就是建立連線
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error with MySQL connection');
設定相關的編碼和選擇要使用的資料庫
mysql_query("SET NAMES 'utf-8'"); mysql_select_db($dbname);
接著就準備開始使用mysql的語法了
$sql = "SELECT COUNT(*) as total FROM `FileList` WHERE `class` = 0;"; $result = mysql_query($sql) or die('MySQL query error'); while($row = mysql_fetch_array($result)){ echo $row['name']; }
先用$sql紀錄語法,接著丟到mysql_query($sql)
這函式就會把$sql的語法丟到mysql讓他去執行
然後利用$result = mysql_query($sql)去得到回傳的結果
根據sql語法回傳的資料結構也不一樣
若是最一般的select語法則可以利用while迴圈和mysql_fetch_array去拿到資料
以上是最簡單的php mysql語法
但是後來發現如果一個php file裡面要存取多次database或是存取不只一個database
就會非常麻煩
所以我就改用了物件導向的方式
物件導向的方式
通常我會寫兩個檔案,一個是DB_config.php,另外一個是DB_class.php
DB_config.php就是很簡單的設定database的位址、username、password以及使用的資料表
<?php global $_DB; $_DB['host'] = "localhost"; $_DB['username'] = "username"; $_DB['password'] = "password"; $_DB['dbname'] = "db_name"; ?>
另外再寫一個DB_Class.php檔
<?php class DB { var $_dbConn = 0; var $_queryResource = 0; function DB() { //do nothing } function connect_db($host, $user, $pwd, $dbname) { $dbConn = mysql_connect($host, $user, $pwd); if (! $dbConn) die ("MySQL Connect Error"); mysql_query("SET NAMES utf8"); if (! mysql_select_db($dbname, $dbConn)) die ("MySQL Select DB Error"); $this->_dbConn = $dbConn; return true; } function query($sql) { if (! $queryResource = mysql_query($sql, $this->_dbConn)) die ("MySQL Query Error"); $this->_queryResource = $queryResource; return $queryResource; } /** Get array return by MySQL */ function fetch_array() { return mysql_fetch_array($this->_queryResource, MYSQL_ASSOC); } function get_num_rows() { return mysql_num_rows($this->_queryResource); } /** Get the cuurent id */ function get_insert_id() { return mysql_insert_id($this->_dbConn); } } ?>
最後在要使用mysql的php file裡面
<?php require_once("DB_config.php"); require_once("DB_class.php"); $db = new DB(); $db->connect_db($_DB['host'], $_DB['username'], $_DB['password'], $_DB['dbname']); $db->query("SELECT ...."); while($result = $db->fetch_array()) { // do something you want... } ?>