MySQL Insert Into 添加數據
INSERT INTO
INSERT INTO 語法用於向數據表中添加數據記錄。
語法:
INSERT INTO tb_name VALUES (value1, value2,...)
該語法表示向表中所有的字段按順序都插入數據記錄。
但更多情況下是向指定的列添加記錄:
INSERT INTO tb_name (column1, column2,...) VALUES (value1, value2,...)
下面的例子向 user 表添加一條記錄:
<?php $conn = @mysql_connect("localhost","root","root123"); if (!$conn){ die("連接數據庫失敗:" . mysql_error()); } mysql_select_db("test", $conn); mysql_query("set names 'gbk'"); //為避免中文亂碼做入庫編碼轉換 //mysql_query("set names 'utf8'"); //PHP 文件為 utf-8 格式時使用 $password = md5("123456"); //原始密碼 12345 經過加密後得到加密後密碼 $regdate = time(); //得到時間戳 $sql = "INSERT INTO user(username, password, email, regdate)VALUES('小王', '$password', '[email protected]', $regdate)"; //exit($sql); //退出程序並打印 SQL 語句,用於調試 if(!mysql_query($sql,$conn)){ echo "添加數據失敗:".mysql_error(); } else { echo "添加數據成功!"; } ?>
如果是表單提交的數據,那麼在數據處理頁面可以使用 $_POST 或 $_GET 接收表單數據而將數據寫入數據表。
說明
1.為了避免數據記錄因為編碼問題無法寫入數據表或寫入亂碼,所以在執行 mysql_query() 之前,進行了編碼轉換
2.存儲密碼為實際密碼經過 MD5 加密,MD5 加密不可逆,如要驗證密碼,只需將用戶輸入的密碼經 MD5 加密後與數據庫密碼比對即可
3.在 SQL 語句中,我們使用單引號''來表示文本字符屬性
4.為了調試數據寫入數據表中出現的異常,增加了退出程序並打印 SQL 語句的功能,在需要調試的時候可去掉語句前面的注釋,使之生效而便於調試
MySQL Select from 查詢數據
普通查詢
SELECT FROM 語法用於從數據表中查詢讀取數據。
語法:
SELECT column1,column1,... FROM tb_name
如果要讀取全部字段,可以使用 * 號代替字段名:
SELECT * FROM tb_name
例子:
<?php $conn = @mysql_connect("localhost","root","root123"); if (!$conn){ die("連接數據庫失敗:" . mysql_error()); } mysql_select_db("test", $conn); mysql_query("set character set 'gbk'"); //避免中文亂碼字符轉換 mysql_query("set character set 'utf8'"); // PHP 文件為 utf-8 格式時使用 $sql = "SELECT * FROM user"; $result = mysql_query($sql); //得到查詢結果數據集 //循環從數據集取出數據 while( $row = mysql_fetch_array($result) ){ echo "用戶名:".$row['username']."<br />"; echo "電子郵件:".$row['email']."<br />"; echo "注冊日期:".date("Y-m-d", $row[regdate])."<br /><br />"; } ?>
浏覽器輸出:
用戶名:admin
電子郵件:[email protected]
注冊日期:2010-08-06
用戶名:小明
電子郵件:[email protected]
注冊日期:2010-07-02
用戶名:Jack
電子郵件:[email protected]
注冊日期:2010-07-02
用戶名:小王
電子郵件:[email protected]
注冊日期:2010-11-13
說明
1.使用 mysql_query("set character set 'gbk'") 來避免讀取數據的中文亂碼
2.mysql_query() 得到的是數據集資源(Resource),需要用 mysql_fetch_array() 函數來取得
3.使用 while 循環來逐行取得全部數據