PHP MySQL 數(shù)據(jù)庫
1灭红、創(chuàng)建數(shù)據(jù)庫鏈接
注釋:要想鏈接到一個數(shù)據(jù)庫侣滩,首先,必須創(chuàng)建到達(dá)數(shù)據(jù)庫的連接变擒,創(chuàng)建函數(shù):mysql_connect()
語法:mysql_connect(servername,username,password);
相關(guān)參數(shù):
1君珠、servername : 可選。規(guī)定要連接的服務(wù)器娇斑。默認(rèn)是 "localhost:3306"策添。
2、username : 可選毫缆。規(guī)定登錄所使用的用戶名唯竹。默認(rèn)值是擁有服務(wù)器進(jìn)程的用戶的名稱。
3苦丁、password : 可選浸颓。規(guī)定登錄所用的密碼。默認(rèn)是 ""旺拉。
<?php
$con = mysql_connect("localhost","peter","abc123"); //目標(biāo)服務(wù)器产上,用戶名,密碼
if (!$con) {
die('Could not connect: ' . mysql_error()); //如果鏈接失敗蛾狗,則知心話 die() 部分
}
//腳本一結(jié)束晋涣,就會關(guān)閉連接。如需提前關(guān)閉連接沉桌,請使用 mysql_close() 函數(shù)谢鹊。
mysql_close($con);
?>
2、創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 語句用于在 MySQL 中創(chuàng)建數(shù)據(jù)庫留凭。
語法:CREATE DATABASE database_name
為了讓 PHP 執(zhí)行上面的語句佃扼,我們必須使用 mysql_query() 函數(shù)。此函數(shù)用于向 MySQL 連接發(fā)送查詢或命令冰抢。
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con)) { // 創(chuàng)建了一個名為 "my_db" 的數(shù)據(jù)庫
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
mysql_close($con); //關(guān)閉鏈接
?>
3松嘶、創(chuàng)建表
CREATE TABLE 用于在 MySQL 中創(chuàng)建數(shù)據(jù)庫表艘狭。
語法:
CREATE TABLE table_name (
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
.......
)
注釋:為了執(zhí)行此命令挎扰,我必須向 mysql_query() 函數(shù)添加 CREATE TABLE 語句。
<?php
$con = mysql_connect("localhost","peter","abc123"); //創(chuàng)建鏈接
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con)) { //創(chuàng)建名為 my_db 的數(shù)據(jù)庫
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
mysql_select_db("my_db", $con); //通過 mysql_select_db() 函數(shù)選取目標(biāo)數(shù)據(jù)庫巢音。
$sql = "CREATE TABLE Persons ( //創(chuàng)建表
FirstName varchar(15), //必須規(guī)定字段的最大長度 (15)
LastName varchar(15), //必須規(guī)定字段的最大長度 (15)
Age int
)";
mysql_query($sql,$con); //為了執(zhí)行創(chuàng)建命令遵倦,必須向 mysql_query() 函數(shù)添加 CREATE TABLE 語句。
mysql_close($con); //關(guān)閉鏈接
?>
注釋:當(dāng)您創(chuàng)建 varchar 類型的數(shù)據(jù)庫字段時官撼,必須規(guī)定該字段的最大長度梧躺,例如:varchar(15)。
4、主鍵字段 和 自動遞增字段
每一個表都應(yīng)該有一個主鍵字段掠哥。
主鍵用于對表中的行進(jìn)行唯一標(biāo)識巩踏。每個主鍵值在表中必須是唯一的。
主鍵字段不能為空续搀,這是由于數(shù)據(jù)庫引擎需要一個值來對記錄進(jìn)行定位塞琼。
主鍵字段永遠(yuǎn)要被編入索引。
必須對主鍵字段進(jìn)行索引禁舷,這樣數(shù)據(jù)庫引擎才能快速定位給予該鍵值的行彪杉。
//主鍵字段通常是 ID 號,且通常使用 AUTO_INCREMENT 設(shè)置牵咙。
//AUTO_INCREMENT 會在新記錄被添加時逐一增加該字段的值派近。
//要確保主鍵字段不為空,我們必須向該字段添加 NOT NULL 設(shè)置洁桌。
$sql = "CREATE TABLE Persons (
personID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(personID), //把 personID 字段設(shè)置為主鍵字段渴丸。
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);
5、向數(shù)據(jù)庫表插入數(shù)據(jù)
INSERT INTO 語句用于向數(shù)據(jù)庫表添加新記錄另凌。
語法:
INSERT INTO table_name (相關(guān)參數(shù)一曙强,相關(guān)參數(shù)二,...)
VALUES (value1, value2,....)
注釋:SQL 語句對大小寫不敏感途茫。INSERT INTO 與 insert into 相同碟嘴。
<?php
$con = mysql_connect("localhost","peter","abc123"); //創(chuàng)建數(shù)據(jù)庫鏈接
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con)) { //創(chuàng)建名為 my_db 的數(shù)據(jù)庫
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
mysql_select_db("my_db", $con); //通過 mysql_select_db() 函數(shù)選取目標(biāo)數(shù)據(jù)庫。
mysql_query("INSERT INTO Persons (FirstName, LastName, Age) //向Persons 的表中插入數(shù)據(jù)
VALUES ('Peter', 'Griffin', '35')");
mysql_query("INSERT INTO Persons (FirstName, LastName, Age) //向Persons 的表中插入數(shù)據(jù)
VALUES ('Glenn', 'Quagmire', '33')");
mysql_close($con); //關(guān)閉數(shù)據(jù)庫鏈接
?>
為了讓 PHP 執(zhí)行該語句囊卜,我們必須使用 mysql_query() 函數(shù)娜扇。該函數(shù)用于向 MySQL 連接發(fā)送查詢或命令。
6栅组、將表單中的數(shù)據(jù)插入數(shù)據(jù)庫
表單:
<html>
<body>
<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
當(dāng)用戶點擊上例中 HTML 表單中的提交按鈕時雀瓢,表單數(shù)據(jù)被發(fā)送到 "insert.php"。"insert.php" 文件連接數(shù)據(jù)庫玉掸,并通過 $_POST 變量從表單取回值刃麸。然后,mysql_query() 函數(shù)執(zhí)行 INSERT INTO 語句司浪,一條新的記錄會添加到數(shù)據(jù)庫表中泊业。
"insert.php" 頁面的代碼如下:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE my_db",$con)) { //創(chuàng)建名為 my_db 的數(shù)據(jù)庫
echo "Database created";
} else {
echo "Error creating database: " . mysql_error();
}
mysql_select_db("my_db", $con); //選定目標(biāo)數(shù)據(jù)庫
$sql="INSERT INTO Persons (FirstName, LastName, Age) //插入數(shù)據(jù)
VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
7、從數(shù)據(jù)庫中選取數(shù)據(jù)
SELECT 語句用于從數(shù)據(jù)庫中選取數(shù)據(jù)啊易。
語法:SELECT column_name(s) FROM table_name
注釋:SQL 語句對大小寫不敏感吁伺。SELECT 與 select 等效。
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM Persons");
while($row = mysql_fetch_array($result)) {
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br />";
}
mysql_close($con);
?>