MYSQL和PHP:1.一边学习MYSQL一边学习PHP(助记笔记)

文章目录

  • MySQL 连接
    • 使用mysql二进制方式连接
    • 使用 PHP 脚本连接 MySQL
  • MySQL 创建数据库
    • 使用 mysqladmin 创建数据库
    • 使用 PHP脚本 创建数据库
  • MySQL 删除数据库
    • drop 命令删除数据库
    • 使用 mysqladmin 删除数据库
    • 使用PHP脚本删除数据库
  • MySQL 选择数据库
    • 从命令提示窗口中选择MySQL数据库
    • 使用PHP脚本选择MySQL数据库
  • MySQL 数据类型
  • MySQL 创建数据表
    • 使用PHP脚本创建数据表
  • MySQL 删除数据表
    • 使用PHP脚本删除数据表
  • MySQL 插入数据
    • 使用PHP脚本插入数据
  • MySQL 查询数据
    • 通过命令提示符获取数据
    • 使用PHP脚本来获取数据
    • 内存释放
  • MySQL WHERE
    • BINARY :
    • 使用PHP脚本读取数据
  • MySQL UPDATE 查询
    • 使用PHP脚本更新数据

MySQL 连接

使用mysql二进制方式连接

实例
以下是从命令行中连接mysql服务器的简单实例:
[root@host]# mysql -u root -p
Enter password:******

mysql> exit           --退出
Bye

使用 PHP 脚本连接 MySQL

语法
mysqli_connect(host,username,password,dbname,port,socket);

bool mysqli_close ( mysqli $link )

你可以使用PHP的 mysqli_close() 函数来断开与MySQL数据库的链接。
该函数只有一个参数为 mysqli_connect() 函数创建连接成功后返回的 MySQL 连接标识符。

参数 描述
host 可选。规定主机名或 IP 地址。
username 可选。规定 MySQL 用户名。
password 可选。规定 MySQL 密码。
dbname 可选。规定默认使用的数据库。
port 可选。规定尝试连接到 MySQL 服务器的端口号。
socket 可选。规定 socket 或要使用的已命名 pipe。

实例
你可以尝试以下实例来连接到你的 MySQL 服务器:
连接 MySQL


MySQL 创建数据库

CREATE DATABASE 数据库名;

使用 mysqladmin 创建数据库

使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库。

[root@host]# mysqladmin -u root -p create RUNOOB
Enter password:******

使用 PHP脚本 创建数据库

mysqli_query(connection,query,resultmode);
参数 描述
connection 必需。规定要使用的 MySQL 连接。
query 必需,规定查询字符串。
resultmode 可选。一个常量。可以是下列值中的任意一个“MYSQLI_USE_RESULT(如果需要检索大量数据,请使用这个)。MYSQLI_STORE_RESULT(默认)
';
$sql = 'CREATE DATABASE RUNOOB';
$retval = mysqli_query($conn,$sql );
if(! $retval )
{
    die('创建数据库失败: ' . mysqli_error($conn));
}
echo "数据库 RUNOOB 创建成功\n";
mysqli_close($conn);
?>

MySQL 删除数据库

drop 命令删除数据库

drop database 数据库名;
mysql> drop database RUNOOB;

使用 mysqladmin 删除数据库

[root@host]# mysqladmin -u root -p drop RUNOOB
Enter password:******

使用PHP脚本删除数据库

mysqli_query(connection,query,resultmode);
';
$sql = 'DROP DATABASE RUNOOB';
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die('删除数据库失败: ' . mysqli_error($conn));
}
echo "数据库 RUNOOB 删除成功\n";
mysqli_close($conn);
?>

MySQL 选择数据库

从命令提示窗口中选择MySQL数据库

mysql> use RUNOOB;

使用PHP脚本选择MySQL数据库

mysqli_select_db(connection,dbname);

connection:必需。规定要使用的 MySQL 连接。
dbname :必需,规定要使用的默认数据库。


mysql_select_db() 函数设置活动的 MySQL 数据库。
如果成功,则该函数返回 true。如果失败,则返回 false。

MySQL 数据类型

http://www.runoob.com/mysql/mysql-data-types.html

MySQL 创建数据表

CREATE TABLE table_name (column_name column_type);
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,  --runoob_id为无符号整型,自增
   `runoob_title` VARCHAR(100) NOT NULL,     --NOT NULL不可一为空
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )               --PRIMARY KEY:是主键的意思
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

实例解析:

NOT NULL 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT 定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY 关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。

使用PHP脚本创建数据表

mysqli_query(connection,query,resultmode);
';
$sql = "CREATE TABLE runoob_tbl( ".
        "runoob_id INT NOT NULL AUTO_INCREMENT, ".
        "runoob_title VARCHAR(100) NOT NULL, ".
        "runoob_author VARCHAR(40) NOT NULL, ".
        "submission_date DATE, ".
        "PRIMARY KEY ( runoob_id ))ENGINE=InnoDB DEFAULT CHARSET=utf8; ";
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die('数据表创建失败: ' . mysqli_error($conn));
}
echo "数据表创建成功\n";
mysqli_close($conn);
?>

mysql_select_db() 函数设置活动的 MySQL 数据库。
如果成功,则该函数返回 true。如果失败,则返回 false。
MYSQL和PHP:1.一边学习MYSQL一边学习PHP(助记笔记)_第1张图片

MySQL 删除数据表

DROP TABLE table_name ;

使用PHP脚本删除数据表

';
$sql = "DROP TABLE runoob_tbl";
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
  die('数据表删除失败: ' . mysqli_error($conn));
}
echo "数据表删除成功\n";
mysqli_close($conn);
?>

mysqli_select_db( $conn, ‘RUNOOB’ );设置执行操作的数据库。

mysql> show tables;
Empty set (0.01 sec)

MySQL 插入数据

INSERT INTO table_name ( field1, field2,...fieldN )
VALUES ( value1, value2,...valueN );
root@host# mysql -u root -p password;
Enter password:*******

mysql> use RUNOOB;

mysql> INSERT INTO runoob_tbl 
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("学习 PHP", "菜鸟教程", NOW());

mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("学习 MySQL", "菜鸟教程", NOW());

mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("JAVA 教程", "RUNOOB.COM", '2016-05-06');

使用PHP脚本插入数据

';
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
 
$runoob_title = '学习 Python';
$runoob_author = 'RUNOOB.COM';
$submission_date = '2016-03-06';
 
 //下面的 . 是连接符
$sql = "INSERT INTO runoob_tbl ".
        "(runoob_title,runoob_author, submission_date) ".
        "VALUES ".
        "('$runoob_title','$runoob_author','$submission_date')";
 
 
 
mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
  die('无法插入数据: ' . mysqli_error($conn));
}
echo "数据插入成功\n";
mysqli_close($conn);
?>

对于含有中文的数据插入,需要添加 mysqli_query($conn , “set names utf8”); 语句。

MySQL 查询数据

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]

通过命令提示符获取数据

select * from runoob_tbl;

使用PHP脚本来获取数据

mysqli_fetch_array():来使用或输出所有查询的数据。
函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有 返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。

菜鸟教程 mysqli_fetch_array 测试

'; echo ''; while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) { echo " ". " ". " ". " ". ""; } echo '
教程 ID标题作者提交日期
{$row['runoob_id']}{$row['runoob_title']} {$row['runoob_author']} {$row['submission_date']}
'; mysqli_close($conn); ?>

mysqli_fetch_array() 函数第二个参数为 MYSQLI_ASSOC, 设置该参数查询结果返回关联数组

PHP 提供了另外一个函数 mysqli_fetch_assoc(), 该函数从结果集中取得一行作为关联数组。 返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。

菜鸟教程 mysqli_fetch_assoc 测试

'; echo ''; while($row = mysqli_fetch_assoc($retval)) { echo " ". " ". " ". " ". ""; } echo '
教程 ID标题作者提交日期
{$row['runoob_id']}{$row['runoob_title']} {$row['runoob_author']} {$row['submission_date']}
'; mysqli_close($conn); ?>

你也可以使用常量 MYSQLI_NUM 作为 PHP mysqli_fetch_array() 函数的第二个参数,返回数字数组。

菜鸟教程 mysqli_fetch_array 测试

'; echo ''; while($row = mysqli_fetch_array($retval, MYSQLI_NUM)) { echo " ". " ". " ". " ". ""; } echo '
教程 ID标题作者提交日期
{$row[0]}{$row[1]} {$row[2]} {$row[3]}
'; mysqli_close($conn); ?>

内存释放

mysqli_free_result() 来实现内存的释放。

菜鸟教程 mysqli_fetch_array 测试

'; echo ''; while($row = mysqli_fetch_array($retval, MYSQLI_NUM)) { echo " ". " ". " ". " ". ""; } echo '
教程 ID标题作者提交日期
{$row[0]}{$row[1]} {$row[2]} {$row[3]}
'; // 释放内存 mysqli_free_result($retval); mysqli_close($conn); ?>

MySQL WHERE

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
SELECT * from runoob_tbl WHERE runoob_author='菜鸟教程';

BINARY :

MySQL 的 WHERE 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。

SELECT * from runoob_tbl WHERE BINARY runoob_author='RUNOOB.COM';

使用PHP脚本读取数据

菜鸟教程 MySQL WHERE 子句测试

'; echo ''; while($row = mysqli_fetch_array($retval, MYSQL_ASSOC)) { echo " ". " ". " ". " ". ""; } echo '
教程 ID标题作者提交日期
{$row['runoob_id']}{$row['runoob_title']} {$row['runoob_author']} {$row['submission_date']}
'; // 释放内存 mysqli_free_result($retval); mysqli_close($conn); ?>

MySQL UPDATE 查询

UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
UPDATE runoob_tbl SET runoob_title='学习 C++' WHERE runoob_id=3;

使用PHP脚本更新数据


你可能感兴趣的:(知识框架,MYSQL)