最近打算系統的學習一下php,以前看過,但是並沒深入的瞭解。接下來我就總結一下php中 對mysql數據庫的一些增刪改查操作。我這裏主要講的是面向過程的操作方法
一、鏈接數據庫
1.php中鏈接數據庫還是比較簡單的。直接使用 mysql_connect()
函數 (打開非持久的 MySQL 連接);
語法: mysql_connect(servername,username,passward) 這裏是部分參數
servername: 可選。規定要連接的服務器。默認是 “localhost:3306”。
username: 可選。規定登錄所使用的用戶名。默認值是擁有服務器進程的用戶的名稱。
password: 可選。規定登錄所用的密碼。默認是 “”。
mysql_connect() 函數具有返回值,但數據庫鏈接不成功時,返回false;
當我們連接成功後,執行完代碼時,數據庫會自動關閉鏈接。如果你想提前關閉連接可以使用 mysql_close()
函數
例如:
<?php
$servername = "localhost";
$username = "root";
$password = "root";
// 連接服務器
$con = mysql_connect($servername, $username, $password);
if(!$con){
die('could not connect mysql'. mysql_error())
}else{
echo "鏈接數據庫成功";
}
?>
操作我們的數據庫和表用:
mysql_query();
2.mysql_connect()函數是打開非持久的 MySQL 連接,如果你想打開持久的連接請使用 mysql_pconnect() 函數,它具有一下特點
①當連接的時候本函數將先嚐試尋找一個在同一個主機上用同樣的用戶名和密碼已經打開的(持久)連接,如果找到,則返回此連接標識而不打開新連接。
②當腳本執行完畢後到 SQL 服務器的連接不會被關閉,此連接將保持打開以備以後使用(mysql_close() 不會關閉由 mysql_pconnect() 建立的連接)。
二、創建數據庫和表
1.創建數據庫
語法: "CREATE DATABASE 數據庫名";
例如:(還是上面的代碼)
mysql_query("CREATE DATABASE test",$con); //創建名爲的數據庫
如果創建失敗,會返回false;
有時候我們需要指定數據庫的編碼格式:
mysql_query("set names 'utf8'");
連接數據庫:
mysql_select_db("test", $con); //連接名爲test的數據庫
·
2.創建數據表
語法:
CREATE TABLE 表名
(
字段名 varchar(15),//後面跟的是數據類型
字段名 varchar(15),
字段名 int
)";
例如想表中添加數據:
mysql_select_db("test", $con); // 打開數據庫
// 創建名爲Persons的表
$sql = "CREATE TABLE Persons
(
personID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(personID), // 主鍵
FirstName varchar(15),
LastName varchar(15),
Age int
)";
// 向數據庫中添加表
mysql_query($sql,$con);
重點內容
每一個表都應該有一個主鍵字段。主鍵用來對錶中的行進行唯一的標識,並且每個主鍵值在表中必須是唯一的。
主鍵字段不能爲空,這是由於數據庫引擎需要一個值來對記錄進行定位。
上面的例子把 personID 字段設置爲主鍵字段。主鍵字段通常是 ID 號,且通常使用 AUTO_INCREMENT 設置。AUTO_INCREMENT 會在新記錄被添加時逐一增加該字段的值。要確保主鍵字段不爲空,我們必須向該字段添加 NOT NULL 設置。
三、向表中插入數據
語法:
INSERT INTO table_name(column1,column2,....)
VALUES (value1, value2,....)
這裏注意column1 與column2 不要加引號
實例
header("Content-type:text/html;charset=utf-8");
$server = 'localhost';
$username = 'root';
$password = 'root';
$con = mysql_connect($server,$username,$password);
mysql_select_db('test',$con);
$table = "INSERT INTO Persons (userName,Sex,Age)
VALUES ('老牛','男','55')";
mysql_query($table);
四、查詢數據
1.我們用SELECT 去選取數據
語法:SELECT column_name(s) FROM table_name
① 如果選取所有數據我們 將column_name(s)
寫成 *
② 在向數據庫查詢,或命令時,我們必須使用mysql_query()
函數
③ 這裏我們將查詢到的結果利用函數 mysql_fetch_array()
將其轉化爲數組形式,它有一個指針,每次調用指向下一位,直到結束。
假如我們的數據庫是這樣子
我們獲取所有數據:
$result = mysql_query("SELECT * FROM Persons");
while($res = mysql_fetch_array($result)){
echo $res['userName']." ".$res['Sex']." ".$res['Age'];
echo '<br/>';
}
我們過去age 列的數據
只需改變$result
$result = mysql_query("SELECT Age FROM Persons");
2.加條件查詢 WHERE
語法:
SELECT column FROM table
WHERE column operator value
例如我們只選名字爲 老李的數據:
$result = mysql_query("SELECT * FROM Persons WHERE userName='老李'");
while($res = mysql_fetch_array($result)){
echo $res['userName']." ".$res['Sex']." ".$res['Age'];
echo '<br/>';
3.查詢排序 ORDER BY
語法:
SELECT column_name(s)
FROM table_name
ORDER BY column_name
例如,選取所有數據,並根據age 進行排序:
$result = mysql_query("SELECT Age FROM Persons ORDER BY Age");
while($res = mysql_fetch_array($result)){
echo $res['Age'];
echo '<br/>';
}
重點內容
① ORDER BY 排序方法,默認是升序(1 在 9 之間,”a” 在 “p” 之間);
② 如果想降序使用DESC
例如:
$result = mysql_query("SELECT Age FROM Persons ORDER BY Age DESC");
while($res = mysql_fetch_array($result)){
echo $res['Age'];
echo '<br/>';
}
③ 我們還可以針對多個列進行排序,當按照多個列進行排序時,只有第一列相同時才使用第二列
語法:
SELECT column_name(s)
FROM table_name
ORDER BY column_name1, column_name2
五、修改數據
語法:
UPDATE table_name
SET column_name = new_value
WHERE column_name = some_value
例如我們修改叫老王的性別都爲女:
mysql_query("UPDATE Persons SET Sex='女'
WHERE userName='老王'");
還可以在指定跟多條件:
mysql_query("UPDATE Persons SET Sex='女'
WHERE userName='老王' AND Age='23'");
五、刪除數據
語法:
DELETE FROM table_name
WHERE column_name = some_value
很簡單,這裏直接上例子:
mysql_query("DELETE FROM Persons
WHERE userName = '老王'");
另外對於數據庫的增刪改查,我們有時候爲了提高工作效率,也會用到可視化軟件,這裏我只推薦一個 HeidiSQL ,想這類軟件網上很多,你可以挑選適合自己的。