php平时开发过程中较长使用的是mysql和pdo连接方式。
开始之前先创建表结构:
/*创建数据库*/
CREATE DATABASE IF NOT EXISTS `test`;
/*选择数据库*/
USE `test`;
/*创建表*/
CREATE TABLE IF NOT EXISTS `user` (
name varchar(50),
age int
);
/*插入测试数据*/
INSERT INTO `user` (name, age) VALUES('harry', 20), ('tony', 23), ('harry', 24);
1.使用php: mysql扩展包。(原生方式)
此方式是PHP的原生方法。主要包含几个重要的函数:
mysql_connect();//建立msyql数据库连接,有参数可以建立长连接
mysql_select_db();//选择数据库
mysql_query();//执行sql语句。一般会先执行一个set charset的语句放在乱码
mysql_fetch_array();//执行查询操作得到的结果集,使用此函数从结果集中取出一行一行的数据,取出为数组。类似的还有mysql_fetch_assoc();
mysql_close();//关闭数据库连接
示例:
<?php
$host = 'localhost';
$database = 'test';
$username = 'root';
$password = 'root';
$selectName = 'harry';//要查找的用户名,一般是用户输入的信息
$insertName = 'testname';
$connection = mysql_connect($host, $username, $password);//连接到数据库
mysql_query("set names 'utf8'");//编码转化
if (!$connection) {
die("could not connect to the database.\n" . mysql_error());//诊断连接错误
}
$selectedDb = mysql_select_db($database);//选择数据库
if (!$selectedDb) {
die("could not to the database\n" . mysql_error());
}
$selectName = mysql_real_escape_string($selectName);//防止SQL注入
$query = "select * from user where name = '$selectName'";//构建查询语句
$result = mysql_query($query);//执行查询
if (!$result) {
die("could not to the database\n" . mysql_error());
}
while ($row = mysql_fetch_row($result)) {
//取出结果并显示
$name = $row[0];
$age = $row[1];
echo "Name: $name Age: $age \n";
}
//添加记录
$insertName = mysql_real_escape_string($insertName);//防止SQL注入
$insertSql = "insert into user(name, age) values('$insertName', 18)";