php与mysql交互post_PHP与MySQL的交互(mysqli)

近期在学习PHP,这里总结一下PHP与MySQL的交互。

这里我们使用mysqli进行连接。

mysqli扩展允许我们访问MySQL 4.1及以上版本提供的功能。

想深入了解mysqli的信息可以访问下面的网站进行学习:

http://php.net/manual/zh/book.mysqli.php

这里我们根据几个例子来简单了解交互方式。

环境:

wampServer+sublime

创建数据库

例子:建立名为mydb的数据库

/*

建立连接

其中第一个参数是服务器地址。

其中第二个参数是用户名。

其中第三个参数是密码。

这些参数需要自己查。

*/

$con =new mysqli("localhost","root","123456");

//判断连接是否成功

if (!$con){

//连接失败输出错误。

die('无法连接: ' . mysql_error());

}

//生成SQL语句,创建数据库mydb

$sql = " CREATE DATABASE mydb ";

//调用mysqli的query方法

if ($con->query($sql) === TRUE){

echo "创建成功";

}else{

echo "数据库创建失败: " . mysql_error();

}

//关闭连接

$con->close();

?>

创建数据表

例子:创建一个名User的数据表

SQL语句为:

CREATE TABLE User

(id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(20) NOT NULL,

password VARCHAR(20) NOT NULL,

sex VARCHAR(20) NOT NULL,

dob DATE NOT NULL,

email VARCHAR(50) NOT NULL);

代码:

// 创建连接,这里多的参数是数据库名称。

$con = new mysqli("localhost","root","123456", "mydb");

// 检测连接

if ($con->connect_error) {

die("连接失败: " . $con->connect_error);

}

// 使用 sql 创建数据表

$sql = "CREATE TABLE User (

id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(20) NOT NULL,

password VARCHAR(20) NOT NULL,

sex VARCHAR(20) NOT NULL,

dob DATE NOT NULL,

email VARCHAR(50) NOT NULL

);";

//调用mysqli的query方法

if ($con->query($sql)) {

echo "Table User created successfully";

} else {

echo "创建数据表错误: " . $con->error;

}

//关闭连接

$con->close();

?>

数据的插入

我们向数据表里插入如下数据:

‘测试’, ‘12345678’,’man’,’2016-3-3’,’test@example.com’

SQL语句如下:

INSERT INTO User

(name,password,sex,dob,email)

VALUES

('测试', '12345678','man','2016-3-3','test@example.com');

代码:

// 创建连接

$con = new mysqli("localhost","root","123456", "mydb");

// 检测连接

if ($con->connect_error) {

die("连接失败: " . $con->connect_error);

}

// 使用 sql 插入数据

$sql = "INSERT INTO User (name,password,sex,dob,email)

VALUES ('测试', '12345678','man','2016-3-3','test@example.com')";

if ($con->query($sql)) {

echo "数据插入成功";

} else {

echo "插入错误: " . $con->error;

}

//关闭连接

$con->close();

?>

数据的预处理

插入数据时为了提高效率和防止注入使用预处理方式。

使用如下语句:

INSERT INTO User

(name,password,sex,dob,email)

VALUES

(?, ?,?,?,?);

在需要输入的信息位置用?代替。

这里要用到如下语句:

1)prepare()–>mysqli_stmt mysqli_prepare ( mysqli link,stringquery )预处理。

2)bind_param()–>将变量绑定到准备好的语句中。

3)execute() –>mysqli_stmt_execute() 执行预处理语句。

例子如下:

// 创建连接

$con = new mysqli("localhost","root","123456", "mydb");

// 检测连接

if ($con->connect_error) {

die("连接失败: " . $con->connect_error);

}

//sql语句

$sql ="INSERT INTO User (name,password,sex,dob,email)

VALUES (?, ?,?,?,?)";

// 预处理及绑定

$stmt = $con->prepare($sql);

/*

bind_param()

设置每个'?'要装入的值

第一个参数是设置后几个参数的格式。

s->string, i->integer, d->double

第二个参数开始是上边需要装入的值。

*/

$stmt->bind_param("sssss", $name, $password, $sex,$dob ,$email);

// 设置参数并执行

$name = "John";

$password = "111111111111";

$sex = "man";

$dob = "2015-2-2";

$email = "john@example.com";

// 执行预处理语句

$stmt->execute();

echo "新记录插入成功";

//关闭预处理

$stmt->close();

//关闭连接

$con->close();

?>

数据查询

查询数据库中的名字。

// 创建连接

$con = new mysqli("localhost","root","123456", "mydb");

// 检测连接

if ($con->connect_error) {

die("连接失败: " . $con->connect_error);

}

//查询语句

$sql = "SELECT name FROM User";

$result = $con ->query($sql);

//输出数据

if($result->num_rows>0){

while($row =$result->fetch_assoc()){

echo $row["name"]."
";

}

}

$con->close();

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值