数据库: PHP使用PDO连接数据库实现增 删 改 查 操作
Posted 优秀不够,你是否无可替代
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库: PHP使用PDO连接数据库实现增 删 改 查 操作相关的知识,希望对你有一定的参考价值。
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/Learnmysql" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
准备好测试的数据库
IP: 47.92.31.46
用户名: yang
密码: 11223344.
数据库名字 : databasetest
表格: userinfo
这是我云端电脑安装的数据库,大家都可以连接测试
我设置了权限,只可以增删改查数据
配置php增加数据库插件
PHP属于网页/网站的范畴,用PHP可以实现http通信
现在大部分网页的登录注册都是用PHP来实现的
PHP接收到用户的http数据信息,插入数据库
PHP添加数据库插件
https://www.cnblogs.com/yangfengwu/p/11815410.html
API使用
https://dev.mysql.com/doc/apis-php/en/apis-php-mysqlinfo.html
说明
咱用浏览器访问PHP文件实现对数据库的操作
1.浏览器访问的是我网站根目录的这个文件
<?php //http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344 $servername = "47.92.31.46"; $username = "yang"; $password = "11223344.";//根据自己的修改 $dbname = "databasetest";//链接的数据库名字 $TableName = "userinfo";//链接的表格的名字 try { $Loginusername = $_GET["username"];//用户提交的用户名 $Loginpassword = $_GET["password"];//用户提交的密码 try { $conn = new PDO("mysql:host=$servername;port=3306;dbname=$dbname", $username, $password);//链接数据库 //echo "PDO的API连接成功"; $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置 PDO 错误模式为异常 //编写操作数据库的程序 $conn=null;//关闭 } catch(PDOException $e){ //echo $e->getMessage(); echo "errorCode:DataBase";//返回 } } catch(PDOException $e) { //echo $e->getMessage(); echo "errorCode:ReadData";//返回 }
http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344
这是浏览器输入的后面是用户名和密码
$Loginusername = $_GET["username"];//用户提交的用户名 $Loginpassword = $_GET["password"];//用户提交的密码
这个用来获取http过来的数据
插入数据(第一种)
一,插入数据,id是1,用户名是yang 密码是11223344
浏览器输入 http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344
$sql = "insert into userinfo "." values(1,"."\'".$Loginusername."\'".","."\'".$Loginpassword."\'".")";
insert into userinfo : 插入数据到 userinfo 表格
1 :id的值,自动递增
yang : 用户名
11223344 :密码
注:一般插入字符串型数据需要在数据两边加 \' \'
也就是 \'数据\'
<?php //http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344 $servername = "47.92.31.46"; $username = "yang"; $password = "11223344.";//根据自己的修改 $dbname = "databasetest";//链接的数据库名字 $TableName = "userinfo";//链接的表格的名字 try { $Loginusername = $_GET["username"];//用户提交的用户名 $Loginpassword = $_GET["password"];//用户提交的密码 try { $conn = new PDO("mysql:host=$servername;port=3306;dbname=$dbname", $username, $password);//链接数据库 //echo "PDO的API连接成功"; $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置 PDO 错误模式为异常 // $sql = "insert into userinfo "." values(1,"."\'".$Loginusername."\'".","."\'".$Loginpassword."\'".")"; $count = $conn->exec($sql); //返回受影响的行数 if ($count !=0){//插入数据成功 echo "OK"; }else{ echo "errorCode:DataBase"; } $conn=null;//关闭 } catch(PDOException $e){ //echo $e->getMessage(); echo "errorCode:DataBase";//返回 } } catch(PDOException $e) { //echo $e->getMessage(); echo "errorCode:ReadData";//返回 }
运行测试
http://47.92.31.46/PHPPDOtest.php?username=yang&password=11223344
插入数据(第二种)
$sql = "insert into userinfo "." values(NULL,"."\'".$Loginusername."\'".","."\'".$Loginpassword."\'".")";
和上面相比 value(NULL.....)
设置第一个字段是空,意思是不填写第一个字段(默认就会自动递增)
运行测试
http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=00000000
总结上两种插入数据方式
values里面的值依次填到表格中,如果数据不够,后面的就不插入数据
插入数据(第三种)
$sql = "insert into userinfo(username,password)"." values("."\'".$Loginusername."\'".","."\'".$Loginpassword."\'".")";
(username,password) 后面的values里面的数据对应插到哪个字段里面
运行测试
http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=11111111
删除数据
$sql = "delete from userinfo "." where "."username = "."\'".$Loginusername ."\'";
如果浏览器输入: http://47.92.31.46/PHPPDOtest.php?username=yang&password=11111111
删除 userinfo表格中 username字段中是 yang的数据
意思就是删除,下面这条数据
运行测试
http://47.92.31.46/PHPPDOtest.php?username=yang&password=11111111
$sql = "delete from userinfo "." where "."username = "."\'".$Loginusername ."\'"." and "."password ="."\'".$Loginpassword."\'";
如果浏览器输入: http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=00000000
删除 userinfo表格中 username字段中是 yangyang,同时password字段中是 00000000 的数据
其实就是删除这个
运行测试
http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=00000000
修改数据
$sql = "update userinfo set password="."\'".$Loginpassword."\'" ."where username="."\'".$Loginusername."\'";
如果浏览器输入: http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888
找到userinfo表格中username字段值是yangyang的
然后把 password字段的值修改为 888888
其实就是把11111111修改为888888
运行测试
http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888
当然也可以直接设置
$sql = "update userinfo set password="."\'".$Loginpassword."\'";
查询数据
$sql = "select *from userinfo";//查询表格中的所有数据 $result = $conn->query($sql);//发送SQL语句并接收数据库返回 if ($result && $result->rowCount()) {//查询到数据 while($row = $result->fetch()) {//循环读出数据 echo $row[\'username\'].$row[\'password\'];//打印数据 } }
http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888
注意:和输入的没有关系,咱浏览器输入只是让PHPPDOtest.php 运行一下
为直观看到下面的测试增加一个用户名和密码
查询表格中的所有username字段的值
$sql = "select username from userinfo";//查询表格中的所有username字段的值 $result = $conn->query($sql);//发送SQL语句并接收数据库返回 if ($result && $result->rowCount()) {//查询到数据 while($row = $result->fetch()) {//循环读出数据 echo $row[\'username\'];//打印数据 } }
运行测试
http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888
注意:和输入的没有关系,咱浏览器输入只是让PHPPDOtest.php 运行一下
查询表格中的密码是666666的用户名
$sql = "select username from userinfo where password = 666666";//查询表格中的密码是666666的用户名 $result = $conn->query($sql);//发送SQL语句并接收数据库返回 if ($result && $result->rowCount()) {//查询到数据 while($row = $result->fetch()) {//循环读出数据 echo $row[\'username\'];//打印数据 } }
运行测试
http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888
注意:和输入的没有关系,咱浏览器输入只是让PHPPDOtest.php 运行一下
//查询表格中password是666666的所有数据
$sql = "select *from userinfo where password = 666666";//查询表格中password是666666的所有用户信息 $result = $conn->query($sql);//发送SQL语句并接收数据库返回 if ($result && $result->rowCount()) {//查询到数据 while($row = $result->fetch()) {//循环读出数据 echo $row[\'id\'].$row[\'username\'];//打印数据 } }
运行测试
http://47.92.31.46/PHPPDOtest.php?username=yangyang&password=888888
注意:和输入的没有关系,咱浏览器输入只是让PHPPDOtest.php 运行一下
以上是关于数据库: PHP使用PDO连接数据库实现增 删 改 查 操作的主要内容,如果未能解决你的问题,请参考以下文章
使用Statement接口实现增,删,改操作(工作中不常用这个,而用PreparedStatement接口)