借助PHP的mysql_query()函數(shù)來創(chuàng)建MySQL數(shù)據(jù)庫的教程
以mysql_query()函數(shù)作為教程的基礎前提,我們先來看一下mysql_query()的用法:
mysql_query()函數(shù)
PHP MySQL 函數(shù)庫中,mysql_query() 函數(shù)用于向 MySQL 發(fā)送并執(zhí)行 SQL 語句。
對于沒有數(shù)據(jù)返回結果集的 SQL ,如 UPDATE、DELETE 等在執(zhí)行成功時返回 TRUE,出錯時返回 FALSE;對于 SELECT,SHOW,EXPLAIN 或 DESCRIBE 語句返回一個資源標識符,如果查詢執(zhí)行不正確則返回 FALSE。
語法:
resource mysql_query( string query [, resource connection] )
參數(shù)說明:
提示
如果沒有打開的連接,本函數(shù)會嘗試無參數(shù)調用 mysql_connect() 函數(shù)來建立一個連接
對于返回數(shù)據(jù)集的查詢,就算返回結果為0(即沒有符合查詢條件的記錄),返回的仍然是資源標示符而不是 FALSE
例子1:
<php $conn = @mysql_connect("localhost","root","root123"); if (!$conn){ die("連接數(shù)據(jù)庫失?。? . mysql_error()); } mysql_select_db("test", $conn); $result = mysql_query("SELECT * WHERE 1=1") or die("無效查詢: " . mysql_error()); ?> 該例子查詢語句在 SQL 語法上有錯誤,因此 mysql_query() 執(zhí)行失敗并返回 FALSE 。 例子2: <php $conn = @mysql_connect("localhost","root","root123"); if (!$conn){ die("連接數(shù)據(jù)庫失敗:" . mysql_error()); } mysql_select_db("test", $conn); mysql_query("set names 'gbk'"); //為避免中文亂碼做入庫編碼轉換 $password = md5("123456"); //原始密碼 12345 經(jīng)過加密后得到加密后密碼 $regdate = time(); //得到時間戳 $sql = "INSERT INTO user(username, password, email, regdate)VALUES('小王', '$password', '12345@163.com', $regdate)"; if(!mysql_query($sql,$conn)){ echo "添加數(shù)據(jù)失?。?.mysql_error(); } else { echo "添加數(shù)據(jù)成功!"; } ?>
該例子向 user 表寫入數(shù)據(jù),成功返回 TRUE ,否則返回 FALSE(用 ! 符號判斷)。
Create Database 創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 語法用于創(chuàng)建一個數(shù)據(jù)庫。
語法:
CREATE DATABASE db_name
PHP MySQL 函數(shù)庫中,mysql_query() 函數(shù)用于向 MySQL 發(fā)送并執(zhí)行 SQL 語句。
創(chuàng)建一個名為 testdb 的數(shù)據(jù)庫:
<?php $conn = @mysql_connect("localhost","root","root1234"); if (!$conn){ die("連接數(shù)據(jù)庫失?。? . mysql_error()); } if (@mysql_query("CREATE DATABASE testdb",$conn)){ echo "創(chuàng)建數(shù)據(jù)庫成功!"; } else { echo "創(chuàng)建數(shù)據(jù)庫失?。? . mysql_error(); } ?>
提示
創(chuàng)建數(shù)據(jù)庫需要有對應的用戶權限,如root用戶
在實際的虛擬主機空間中,虛擬主機商通常已經(jīng)創(chuàng)建好了對應的數(shù)據(jù)庫,故上述例子不一定運行成功
選擇數(shù)據(jù)庫
要對數(shù)據(jù)庫或表執(zhí)行操作時,需要選擇一個數(shù)據(jù)庫。mysql_select_db() 用于選擇一個數(shù)據(jù)庫,如果成功,則該函數(shù)返回 true,如果失敗則返回 false。
語法:
bool mysql_select_db( string db_name [, resource connection] )
參數(shù)說明:
具體使用見下面創(chuàng)建數(shù)據(jù)表例子。
創(chuàng)建數(shù)據(jù)表
創(chuàng)建數(shù)據(jù)表 SQL 語法如下:
CREATE TABLE table_name ( column1 data_type, column2 data_type, column3 data_type, ....... )
上述語法中,column為字段名,后面為數(shù)據(jù)類型。
創(chuàng)建一個名為 user 的表:
<?php $conn = @mysql_connect("localhost","root","root1234"); if (!$conn){ die("連接數(shù)據(jù)庫失敗:" . mysql_error()); } //選擇數(shù)據(jù)庫 mysql_select_db("test", $conn); //創(chuàng)建數(shù)據(jù)表 SQL $sql = "CREATE TABLE user ( uid mediumint(8), username varchar(20), password char(32), email varchar(40), regdate int(10) )"; if(!mysql_query($sql,$conn)){ echo "創(chuàng)建數(shù)據(jù)表失?。?. mysql_error(); } else { echo "創(chuàng)建數(shù)據(jù)表成功!"; } ?>
在該例子中,分為 3 個執(zhí)行步驟:
- 創(chuàng)建一個數(shù)據(jù)庫鏈接
- 使用 mysql_select_db() 函數(shù)選擇容納該表的數(shù)據(jù)庫
- 使用 mysql_query() 函數(shù)創(chuàng)建數(shù)據(jù)表
在該例子中創(chuàng)建的表有4個字段,并指定了對應的數(shù)據(jù)對象類型。
建表原則
一般來說,創(chuàng)建數(shù)據(jù)表有如下注意事項:
原始記錄數(shù)據(jù)與表的對應關系
表名和字段名應遵循命名語法且應該明確含義
指定字段的數(shù)據(jù)類型
指定字段的其他如是否非空、是否有默認值等屬性
定義表的屬性如主外鍵、約束、索引等
與其他表的關系
限于篇幅且為控制教程難易度,在此不展開過多討論。
提示
這個建表樣例只是為了演示基本的建表語法,并不完善。實際生產(chǎn)當中,我們還需要給表和字段指定更多的屬性。
相關文章
淺談mysqldump使用方法(MySQL數(shù)據(jù)庫的備份與恢復)
下面小編就為大家?guī)硪黄獪\談mysqldump使用方法(MySQL數(shù)據(jù)庫的備份與恢復)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01一文弄懂MySQL中redo?log與binlog的區(qū)別
在學習mysql數(shù)據(jù)庫時,不可避免要去接觸到redo log和binlog,好多人對這兩者的概念分不太清,下面這篇文章主要給大家介紹了關于MySQL中redo?log與binlog區(qū)別的相關資料,需要的朋友可以參考下2022-02-02mysql遞歸函數(shù)with?recursive的用法舉例
在實際開發(fā)的過程中,我們會遇到一些數(shù)據(jù)是層級關系的、要展示數(shù)據(jù)子父級關系的時候,下面這篇文章主要給大家介紹了關于mysql遞歸函數(shù)with?recursive的用法舉例,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-08-08xtrabackup備份還原MySQL數(shù)據(jù)庫
這篇文章主要為大家詳細介紹了xtrabackup備份還原MySQL數(shù)據(jù)庫的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06MySQL中KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別
本文給大家分享的是mysql索引中的KEY、PRIMARY KEY、UNIQUE KEY、INDEX 的區(qū)別,即主鍵索引,唯一索引和普通索引的區(qū)別,希望大家能夠喜歡2017-07-07