日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

PHP 數(shù)據(jù)庫

系統(tǒng) 3010 0
PHP MySQL 簡介
MySQL 是最流行的開源數(shù)據(jù)庫服務器。
什么是 MySQL?
MySQL 是一種數(shù)據(jù)庫。數(shù)據(jù)庫定義了存儲信息的結構。

在數(shù)據(jù)庫中,存在著一些表。類似 HTML 表格,數(shù)據(jù)庫表含有行、列以及單元。

在分類存儲信息時,數(shù)據(jù)庫非常有用。一個公司的數(shù)據(jù)庫可能擁有這些表:"Employees", "Products", "Customers" 以及 "Orders"。
數(shù)據(jù)庫表
數(shù)據(jù)庫通常包含一個或多個表。每個表都一個名稱(比如 "Customers" 或 "Orders")。每個表包含帶有數(shù)據(jù)的記錄(行)。

下面是一個名為 "Persons" 的表的例子:

PHP 數(shù)據(jù)庫

上面的表含有三個記錄(每個記錄是一個人)和四個列(LastName, FirstName, Address 以及 City)。
查詢
查詢是一種詢問或請求。

通過 MySQL,我們可以向數(shù)據(jù)庫查詢具體的信息,并得到返回的記錄集。

請看下面的查詢:
    
SELECT LastName FROM Persons

  

上面的查詢選取了 Persons 表中 LastName 列的所有數(shù)據(jù),并返回類似這樣的記錄集:


下載 MySQL 數(shù)據(jù)庫
如果您的 PHP 服務器沒有 MySQL 數(shù)據(jù)庫,可以在此下載 MySQL:http://www.mysql.com/downloads/index.html

Facts About MySQL Database
關于 MySQL 的一點很棒的特性是,可以對它進行縮減,來支持嵌入的數(shù)據(jù)庫應用程序。也許正因如此,許多人認為 MySQL 僅僅能處理中小型的系統(tǒng)。

事實上,對于那些支持巨大數(shù)據(jù)和訪問量的網站,MySQL 是事實上的標準數(shù)據(jù)庫(比如 Friendster, Yahoo, Google)。這個地址提供了使用 MySQL 的公司的概覽:http://www.mysql.com/customers/。

PHP MySQL 連接數(shù)據(jù)庫
免費的 MySQL 數(shù)據(jù)庫通常是通過 PHP 來使用的。
連接到一個 MySQL 數(shù)據(jù)庫
在您能夠訪問并處理數(shù)據(jù)庫中的數(shù)據(jù)之前,您必須創(chuàng)建到達數(shù)據(jù)庫的連接。

在 PHP 中,這個任務通過 mysql_connect() 函數(shù)完成。

語法
    
mysql_connect(servername,username,password);

  

PHP 數(shù)據(jù)庫

注釋:雖然還存在其他的參數(shù),但上面列出了最重要的參數(shù)。請訪問 W3School 提供的 PHP MySQL 參考手冊,獲得更多的細節(jié)信息。

例子
在下面的例子中,我們在一個變量中 ($con) 存放了在腳本中供稍后使用的連接。如果連接失敗,將執(zhí)行 "die" 部分:
    
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// some code

?>

  

關閉連接
腳本一結束,就會關閉連接。如需提前關閉連接,請使用 mysql_close() 函數(shù)。
    
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// some code

mysql_close($con);
?>

  


PHP MySQL 創(chuàng)建數(shù)據(jù)庫和表
數(shù)據(jù)庫存有一個或多個表。
創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 語句用于在 MySQL 中創(chuàng)建數(shù)據(jù)庫。

語法
    
CREATE DATABASE database_name

  

為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。此函數(shù)用于向 MySQL 連接發(fā)送查詢或命令。

例子
在下面的例子中,我們創(chuàng)建了一個名為 "my_db" 的數(shù)據(jù)庫:
    
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }

mysql_close($con);
?>

  

創(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 語句。

例子
下面的例子展示了如何創(chuàng)建一個名為 "person" 的表,此表有三列。列名是 "FirstName", "LastName" 以及 "Age":
    
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

// Create database
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }

// Create table in my_db database
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE person 
(
FirstName varchar(15),
LastName varchar(15),
Age int
)";
mysql_query($sql,$con);

mysql_close($con);
?>

  

重要事項:在創(chuàng)建表之前,必須首先選擇數(shù)據(jù)庫。通過 mysql_select_db() 函數(shù)選取數(shù)據(jù)庫。

注釋:當您創(chuàng)建 varchar 類型的數(shù)據(jù)庫字段時,必須規(guī)定該字段的最大長度,例如:varchar(15)。
MySQL 數(shù)據(jù)類型
PHP 數(shù)據(jù)庫
PHP 數(shù)據(jù)庫

主鍵和自動遞增字段
每個表都應有一個主鍵字段。

主鍵用于對表中的行進行唯一標識。每個主鍵值在表中必須是唯一的。此外,主鍵字段不能為空,這是由于數(shù)據(jù)庫引擎需要一個值來對記錄進行定位。

主鍵字段永遠要被編入索引。這條規(guī)則沒有例外。你必須對主鍵字段進行索引,這樣數(shù)據(jù)庫引擎才能快速定位給予該鍵值的行。

下面的例子把 personID 字段設置為主鍵字段。主鍵字段通常是 ID 號,且通常使用 AUTO_INCREMENT 設置。AUTO_INCREMENT 會在新紀錄被添加時逐一增加該字段的值。要確保主鍵字段不為空,我們必須向該字段添加 NOT NULL 設置。

例子
    
$sql = "CREATE TABLE person 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Age int
)";

mysql_query($sql,$con);

  


PHP MySQL Insert Into
INSERT INTO 語句用于向數(shù)據(jù)庫表中插入新紀錄。
向數(shù)據(jù)庫表插入數(shù)據(jù)
INSERT INTO 語句用于向數(shù)據(jù)庫表添加新紀錄。

語法
    
INSERT INTO table_name
VALUES (value1, value2,....)

  

您還可以規(guī)定希望在其中插入數(shù)據(jù)的列:
    
INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2,....)

  

注釋:SQL 語句對大小寫不敏感。INSERT INTO 與 insert into 相同。

為了讓 PHP 執(zhí)行該語句,我們必須使用 mysql_query() 函數(shù)。該函數(shù)用于向 MySQL 連接發(fā)送查詢或命令。

例子
在前面的章節(jié),我們創(chuàng)建了一個名為 "Person" 的表,有三個列:"Firstname", "Lastname" 以及 "Age"。我們將在本例中使用同樣的表。下面的例子向 "Person" 表添加了兩個新紀錄:
    
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

mysql_query("INSERT INTO person (FirstName, LastName, Age) 
VALUES ('Peter', 'Griffin', '35')");

mysql_query("INSERT INTO person (FirstName, LastName, Age) 
VALUES ('Glenn', 'Quagmire', '33')");

mysql_close($con);
?>

  

把來自表單的數(shù)據(jù)插入數(shù)據(jù)庫
現(xiàn)在,我們創(chuàng)建一個 HTML 表單,這個表單可把新紀錄插入 "Person" 表。

這是這個 HTML 表單:
    
<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>

  

當用戶點擊上例中 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());
  }

mysql_select_db("my_db", $con);

$sql="INSERT INTO person (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con)
?>

  


PHP MySQL Select
SELECT 語句用于從數(shù)據(jù)庫中選取數(shù)據(jù)。
從數(shù)據(jù)庫表中選取數(shù)據(jù)
SELECT 語句用于從數(shù)據(jù)庫中選取數(shù)據(jù)。

語法
    
SELECT column_name(s) FROM table_name

  

注釋:SQL 語句對大小寫不敏感。SELECT 與 select 等效。

為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。該函數(shù)用于向 MySQL 發(fā)送查詢或命令。

例子
下面的例子選取存儲在 "Person" 表中的所有數(shù)據(jù)(* 字符選取表中所有數(shù)據(jù)):
    
<?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 person");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }

mysql_close($con);
?>

  

上面這個例子在 $result 變量中存放由 mysql_query() 函數(shù)返回的數(shù)據(jù)。接下來,我們使用 mysql_fetch_array() 函數(shù)以數(shù)組的形式從記錄集返回第一行。每個隨后對 mysql_fetch_array() 函數(shù)的調用都會返回記錄集中的下一行。 while loop 語句會循環(huán)記錄集中的所有記錄。為了輸出每行的值,我們使用了 PHP 的 $row 變量 ($row['FirstName'] 和 $row['LastName'])。

以上代碼的輸出:

Peter Griffin
Glenn Quagmire
在 HTML 表格中顯示結果
下面的例子選取的數(shù)據(jù)與上面的例子相同,但是將把數(shù)據(jù)顯示在一個 HTML 表格中:
    
<?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 person");

echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>

  

以上代碼的輸出:


PHP MySQL Where 子句
如需選取匹配指定條件的數(shù)據(jù),請向 SELECT 語句添加 WHERE 子句。
WHERE 子句
如需選取匹配指定條件的數(shù)據(jù),請向 SELECT 語句添加 WHERE 子句。

語法
    
SELECT column FROM table
WHERE column operator value

  

下面的運算符可與 WHERE 子句一起使用:
PHP 數(shù)據(jù)庫

注釋:SQL 語句對大小寫不敏感。WHERE 與 where 等效。

為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query() 函數(shù)。該函數(shù)用于向 SQL 連接發(fā)送查詢和命令。

例子
下面的例子將從 "Person" 表中選取所有 FirstName='Peter' 的行:
    
<?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 person
WHERE FirstName='Peter'");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'] . " " . $row['LastName'];
  echo "<br />";
  }

?>

  

以上代碼的輸出:

Peter Griffin

PHP MySQL Order By 關鍵詞
ORDER BY 關鍵詞用于對記錄集中的數(shù)據(jù)進行排序。
ORDER BY 關鍵詞
ORDER BY 關鍵詞用于對記錄集中的數(shù)據(jù)進行排序。

語法
    
SELECT column_name(s)
FROM table_name
ORDER BY column_name

  

注釋:SQL 對大小寫不敏感。ORDER BY 與 order by 等效。

例子
下面的例子選取 "Person" 表中的存儲的所有數(shù)據(jù),并根據(jù) "Age" 列對結果進行排序:
    
<?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 person ORDER BY age");

while($row = mysql_fetch_array($result))
  {
  echo $row['FirstName'];
  echo " " . $row['LastName'];
  echo " " . $row['Age'];
  echo "<br />";
  }

mysql_close($con);
?>

  

以上代碼的輸出:

Glenn Quagmire 33
Peter Griffin 35
升序或降序的排序
如果您使用 ORDER BY 關鍵詞,記錄集的排序順序默認是升序(1 在 9 之前,"a" 在 "p" 之前)。

請使用 DESC 關鍵詞來設定降序排序(9 在 1 之前,"p" 在 "a" 之前):
    
SELECT column_name(s)
FROM table_name
ORDER BY column_name DESC

  

根據(jù)兩列進行排序
可以根據(jù)多個列進行排序。當按照多個列進行排序時,只有第一列相同時才使用第二列:
    
SELECT column_name(s)
FROM table_name
ORDER BY column_name1, column_name2

  


PHP MySQL Update
UPDATE 語句用于中修改數(shù)據(jù)庫表中的數(shù)據(jù)。
更新數(shù)據(jù)庫中的數(shù)據(jù)
UPDATE 語句用于在數(shù)據(jù)庫表中修改數(shù)據(jù)。

語法
    
UPDATE table_name
SET column_name = new_value
WHERE column_name = some_value

  

注釋:SQL 對大小寫不敏感。UPDATE 與 update 等效。

為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query( 函數(shù)。該函數(shù)用于向 SQL 連接發(fā)送查詢和命令。

例子
稍早時,我們在本教程中創(chuàng)建了一個名為 "Person" 的表。它看起來類似這樣:


下面的例子更新 "Person" 表的一些數(shù)據(jù):
    
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

mysql_query("UPDATE Person SET Age = '36'
WHERE FirstName = 'Peter' AND LastName = 'Griffin'");

mysql_close($con);
?>

  

在這次更新后,"Person" 表格是這樣的:


PHP MySQL Delete From
DELETE FROM 語句用于從數(shù)據(jù)庫表中刪除行。
刪除數(shù)據(jù)庫中的數(shù)據(jù)
DELETE FROM 語句用于從數(shù)據(jù)庫表中刪除記錄。

語法
    
DELETE FROM table_name
WHERE column_name = some_value

  

注釋:SQL 對大小寫不敏感。DELETE FROM 與 delete from 等效。

為了讓 PHP 執(zhí)行上面的語句,我們必須使用 mysql_query( 函數(shù)。該函數(shù)用于向 SQL 連接發(fā)送查詢和命令。

例子
稍早時,我們在本教程中創(chuàng)建了一個名為 "Person" 的表。它看起來類似這樣:


下面的例子刪除 "Person" 表中所有 LastName='Griffin' 的記錄:
    
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("my_db", $con);

mysql_query("DELETE FROM Person WHERE LastName='Griffin'");

mysql_close($con);
?>

  

在這次刪除之后,表是這樣的:


PHP Database ODBC
ODBC 指的是(Application Programming Interface,API),使我們有能力連接到某個數(shù)據(jù)源(比如一個 MS Access 數(shù)據(jù)庫)。
創(chuàng)建 ODBC 連接
通過一個 ODBC 連接,您可以連接到您的網絡中的任何計算機上的任何數(shù)據(jù)庫,只要 ODBC 連接是可用的。

這是創(chuàng)建到達 MS Access 數(shù)據(jù)的 ODBC 連接的方法:

在控制面板中打開管理工具
雙擊其中的數(shù)據(jù)源 (ODBC) 圖標
選擇系統(tǒng) DSN 選項卡
點擊系統(tǒng) DSN 選項卡中的“添加”按鈕
選擇 Microsoft Access Driver。點擊完成。
在下一個界面,點擊“選擇”來定位數(shù)據(jù)庫。
為這個數(shù)據(jù)庫取一個數(shù)據(jù)源名 (DSN)。
點擊確定。
請注意,必須在您的網站所在的計算機上完成這個配置。如果您的計算機上正在運行 Internet 信息服務器 (IIS),上面的指令會生效,但是假如您的網站位于遠程服務器,您必須擁有對該服務器的物理訪問權限,或者請您的主機提供商為您建立 DSN。
連接到 ODBC
odbc_connect() 函數(shù)用于連接到 ODBC 數(shù)據(jù)源。該函數(shù)有四個參數(shù):數(shù)據(jù)源名、用戶名、密碼以及可選的指針類型參數(shù)。

odbc_exec() 函數(shù)用于執(zhí)行 SQL 語句。

例子
下面的例子創(chuàng)建了到達名為 northwind 的 DSN 的連接,不沒有用戶名和密碼。然后創(chuàng)建并執(zhí)行一條 SQL 語句:
    
$conn=odbc_connect('northwind','','');
$sql="SELECT * FROM customers"; 
$rs=odbc_exec($conn,$sql);

  

取回記錄
odbc_fetch_row() 函數(shù)用于從結果集中返回記錄。如果能夠返回行,則返回 true,否則返回 false。

該函數(shù)有兩個參數(shù):ODBC 結果標識符和可選的行號:
    
odbc_fetch_row($rs)

  

從記錄中取回字段
odbc_result() 函數(shù)用于從記錄中讀取字段。該函數(shù)有兩個參數(shù):ODBC 結果標識符和字段編號或名稱。

下面的代碼行從記錄中返回第一個字段的值:
    
$compname=odbc_result($rs,1); 

  

The code line below returns the value of a field called "CompanyName":
    
$compname=odbc_result($rs,"CompanyName");

  

關閉 ODBC 連接
odbc_close()函數(shù)用于關閉 ODBC 連接。
    
odbc_close($conn);

  

ODBC 實例
下面的例子展示了如何首先創(chuàng)建一個數(shù)據(jù)庫連接,然后是結果集,然后在 HTML 表格中顯示數(shù)據(jù)。
    
<html>
<body>

<?php
$conn=odbc_connect('northwind','','');
if (!$conn)
  {exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
if (!$rs)
  {exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Companyname</th>";
echo "<th>Contactname</th></tr>";
while (odbc_fetch_row($rs))
{
  $compname=odbc_result($rs,"CompanyName");
  $conname=odbc_result($rs,"ContactName");
  echo "<tr><td>$compname</td>";
  echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>

</body>
</html>

  

PHP 數(shù)據(jù)庫


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 高尔夫| 永顺县| 勃利县| 新竹县| 邛崃市| 若羌县| 万州区| 萝北县| 石林| 威信县| 旌德县| 东乡族自治县| 通道| 轮台县| 绥棱县| 宁都县| 襄汾县| 靖西县| 乌海市| 澄城县| 呼图壁县| 贺州市| 武功县| 丰台区| 西华县| 西充县| 龙口市| 惠东县| 盈江县| 吉木乃县| 乌兰县| 舟曲县| 精河县| 个旧市| 独山县| 竹溪县| 鄄城县| 广灵县| 嘉黎县| 吉水县| 达拉特旗|