crud php mysql_php+Mysql 的CRUD操作

这篇博客介绍了PHP连接MySQL的两种方式——MySQLi和PDO,强调了PDO在多数据库环境下的优势。文章详细展示了如何使用MySQLi和PDO进行数据库连接、创建数据库、预处理语句以及增删查改操作,重点讲解了预处理语句防止SQL注入的重要性。通过实例代码,读者可以了解PHP操作MySQL的基本步骤和安全实践。
摘要由CSDN通过智能技术生成

php连接数据库有两种方式,一种是MySQLi,一种是PDO。两种各有优势

PDO 应用在 12 种不同数据库中, MySQLi 只针对 MySQL 数据库。所以,如果你的项目需要在多种数据库中切换,建议使用 PDO ,这样你只需要修改连接字符串和部门查询语句即可。 使用 MySQLi, 如果不同数据库,你需要重新所有代码,包括查询。

两者都是面向对象, 但 MySQLi 还提供了 API 接口。

两者都支持预处理语句。 预处理语句可以防止 SQL 注入,对于 web 项目的安全性是非常重要的。

连接MySQL:

$host ="localhost";

$user ="root";

$password ="123456";//密码

$database ="test";//数据库

$con =new mysqli($host, $user, $password, $database);

if (mysqli_connect_error()) {

die("Database connection failed: " . mysqli_connect_error());

}

else

echo "connect sucessfully";

?>

上面这种方式里,直接传入了我们的数据库名,而不需要再在php中用sql语句来创建一个数据库。如果需要用sql语句,则可以:

$host ="localhost";

$user ="root";

$password ="123456";//密码

$con =new mysqli($host, $user, $password);

if (mysqli_connect_error()) {

die("Database connection failed: " . mysqli_connect_error());

}

else

echo "connect sucessfully";

$sql = "CREATE DATABASE test";

if (mysqli_query($con, $sql)) {

echo "Database created successfully";

} else {

echo "Error creating database: " . mysqli_error($conn);

}

mysqli_close($con);

?>

关闭连接:

$con->close();

接下来就是增删查改操作了:

insert 操作:

/****************insert*************************/

$sql ="insert into logininfo (username,password) values(?,?)";

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

$stmt->bind_param("ss", $username, $pass);

//ss表示后面的两个参数都是string类型的

$username=$_POST['username'];//从前面的表单中获取post传递的参数

$pass =$_POST['password'];

$stmt->execute();//执行插入操作

echo "insert sucessfully";

echo "
";

bind_param函数绑定了sql的参数,并且告诉数据库参数的值。"ss" 参数列处理其余参数的数据类型。s 字符告诉数据库该参数为字符串。

参数有以下四种类型:

i - integer(整型)

d - double(双精度浮点型)

s - string(字符串)

b - BLOB(布尔值)

每个参数都需要指定类型。

通过告诉数据库参数的数据类型,可以降低 SQL 注入的风险。

select操作:

$sql="select * from logininfo where username='".$_POST['userName']."'";//因为用户名是string类型的,所以要加''来

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

if($result){

// 输出每行数据

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

if($row["password"]==$_POST['password'])

echo "login sucess";

else echo "password wrong";

}

}

else {

echo "0 results";

}

delete操作:

//***************delete********************/

$sql ="delete from logininfo where username='zjz'";

//如果不需要和前面的insert操作一样用占位符,则可以直接使用query方法

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

if($state)

echo "delete sucessfully";

else echo "error";

update操作:

$sql ="update logininfo set password=7724 where username='daming'";

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

echo "update sucessfully";

}

else

echo "error";

用占位符的方式:

//*******************update2*********************//

$sql ="update logininfo set password=7724 where username=?";

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

$name="xiaoming";

$stmt->bind_param("s", $name);

echo "
";

if($stmt->execute()){

echo "sucessfully";

}

else

echo "error";

以上就是简单的PHP连MySQL的增删查改操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值