借助PHP的mysql_query()函數(shù)來創(chuàng)建MySQL數(shù)據(jù)庫的教程
以mysql_query()函數(shù)作為教程的基礎(chǔ)前提,我們先來看一下mysql_query()的用法:
mysql_query()函數(shù)
PHP MySQL 函數(shù)庫中,mysql_query() 函數(shù)用于向 MySQL 發(fā)送并執(zhí)行 SQL 語句。
對(duì)于沒有數(shù)據(jù)返回結(jié)果集的 SQL ,如 UPDATE、DELETE 等在執(zhí)行成功時(shí)返回 TRUE,出錯(cuò)時(shí)返回 FALSE;對(duì)于 SELECT,SHOW,EXPLAIN 或 DESCRIBE 語句返回一個(gè)資源標(biāo)識(shí)符,如果查詢執(zhí)行不正確則返回 FALSE。
語法:
resource mysql_query( string query [, resource connection] )
參數(shù)說明:

提示
如果沒有打開的連接,本函數(shù)會(huì)嘗試無參數(shù)調(diào)用 mysql_connect() 函數(shù)來建立一個(gè)連接
對(duì)于返回?cái)?shù)據(jù)集的查詢,就算返回結(jié)果為0(即沒有符合查詢條件的記錄),返回的仍然是資源標(biāo)示符而不是 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 語法上有錯(cuò)誤,因此 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'"); //為避免中文亂碼做入庫編碼轉(zhuǎn)換
$password = md5("123456"); //原始密碼 12345 經(jīng)過加密后得到加密后密碼
$regdate = time(); //得到時(shí)間戳
$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(用 ! 符號(hào)判斷)。
Create Database 創(chuàng)建數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 語法用于創(chuàng)建一個(gè)數(shù)據(jù)庫。
語法:
CREATE DATABASE db_name
PHP MySQL 函數(shù)庫中,mysql_query() 函數(shù)用于向 MySQL 發(fā)送并執(zhí)行 SQL 語句。
創(chuàng)建一個(gè)名為 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ù)庫需要有對(duì)應(yīng)的用戶權(quán)限,如root用戶
在實(shí)際的虛擬主機(jī)空間中,虛擬主機(jī)商通常已經(jīng)創(chuàng)建好了對(duì)應(yīng)的數(shù)據(jù)庫,故上述例子不一定運(yùn)行成功
選擇數(shù)據(jù)庫
要對(duì)數(shù)據(jù)庫或表執(zhí)行操作時(shí),需要選擇一個(gè)數(shù)據(jù)庫。mysql_select_db() 用于選擇一個(gè)數(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)建一個(gè)名為 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 個(gè)執(zhí)行步驟:
- 創(chuàng)建一個(gè)數(shù)據(jù)庫鏈接
- 使用 mysql_select_db() 函數(shù)選擇容納該表的數(shù)據(jù)庫
- 使用 mysql_query() 函數(shù)創(chuàng)建數(shù)據(jù)表
在該例子中創(chuàng)建的表有4個(gè)字段,并指定了對(duì)應(yīng)的數(shù)據(jù)對(duì)象類型。
建表原則
一般來說,創(chuàng)建數(shù)據(jù)表有如下注意事項(xiàng):
原始記錄數(shù)據(jù)與表的對(duì)應(yīng)關(guān)系
表名和字段名應(yīng)遵循命名語法且應(yīng)該明確含義
指定字段的數(shù)據(jù)類型
指定字段的其他如是否非空、是否有默認(rèn)值等屬性
定義表的屬性如主外鍵、約束、索引等
與其他表的關(guān)系
限于篇幅且為控制教程難易度,在此不展開過多討論。
提示
這個(gè)建表樣例只是為了演示基本的建表語法,并不完善。實(shí)際生產(chǎn)當(dāng)中,我們還需要給表和字段指定更多的屬性。
相關(guān)文章
Mysql數(shù)據(jù)庫雙機(jī)熱備難點(diǎn)分析
本文主要給大家介紹了在Mysql數(shù)據(jù)庫雙機(jī)熱備其中的難點(diǎn)分析以及重要環(huán)節(jié)的經(jīng)驗(yàn)心得,需要的朋友收藏分享下吧。2017-12-12
MySQL中存儲(chǔ)時(shí)間的最佳實(shí)踐指南
這篇文章主要給大家介紹了關(guān)于MySQL中存儲(chǔ)時(shí)間的最佳實(shí)踐,文中詳細(xì)介紹了哪種存儲(chǔ)時(shí)間的方式更好,對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-07-07
mysql8.0.20配合binlog2sql的配置和簡單備份恢復(fù)的步驟詳解
這篇文章主要介紹了mysql8.0.20配合binlog2sql的配置和簡單備份恢復(fù)的步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
關(guān)于數(shù)據(jù)庫中保留小數(shù)位的問題
本篇文章是對(duì)關(guān)于在數(shù)據(jù)庫中保留小數(shù)位的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
mysql正確安全清空在線慢查詢?nèi)罩緎low log的流程分享
這篇文章主要介紹了正確安全清空在線慢查詢?nèi)罩緎low log的流程,需要的朋友可以參考下2014-02-02
MySQL創(chuàng)建內(nèi)部臨時(shí)表的所有場(chǎng)景盤點(diǎn)
這篇文章主要為大家介紹了MySQL創(chuàng)建內(nèi)部臨時(shí)表的所有場(chǎng)景盤點(diǎn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11

