MySQL Insert Into 添加数据
INSERT INTO
INSERT INTO 语法用于向数据表中添加数据记录。
语法:
1
|
INSERT INTO tb_name VALUES (value1, value2,...)
|
该语法表示向表中所有的字段按顺序都插入数据记录。
但更多情况下是向指定的列添加记录:
1
|
INSERT INTO tb_name (column1, column2,...) VALUES (value1, value2,...)
|
下面的例子向 user 表添加一条记录:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?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' ,
'12345@163.com' , $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 语法用于从数据表中查询读取数据。
语法:
1
|
SELECT column1,column1,... FROM tb_name
|
如果要读取全部字段,可以使用 * 号代替字段名:
1
|
SELECT * FROM tb_name
|
例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?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
电子邮件:admin@5idev.com
注册日期:2010-08-06
用户名:小明
电子邮件:xiao@163.com
注册日期:2010-07-02
用户名:Jack
电子邮件:jack@gmail.com
注册日期:2010-07-02
用户名:小王
电子邮件:12345@163.com
注册日期:2010-11-13
说明
1.使用 mysql_query("set character set 'gbk'") 来避免读取数据的中文乱码
2.mysql_query() 得到的是数据集资源(Resource),需要用 mysql_fetch_array() 函数来取得
3.使用 while 循环来逐行取得全部数据