Web编程入门 1.4 PHP连接数据库 PDO

PHP与数据库进行交互的前提是先要从前端js拿到数据,拿到数据后,再与数据库进行交互,最后将结果返回给前端。

(1)PHP得到数据

$data = $_GET;
$data = $_POST;

看前端设置请求类型为GET就是$_GET,反之则为$_POST

(2)PHP与数据库交互

这里我使用了MYSQL数据库,当然不同人对于数据库选择是不同,因此就出现了一个兼容性的问题,这里PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。这就解决了兼容性的问题。因此接下来的操作都通过PDO来进行。

$dbms='mysql';     //数据库类型
$host='localhost'; //数据库主机名
$dbName='gather';    //使用的数据库
$user='root';      //数据库连接用户名
$pass='';          //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";

参数设置成功后使用PDO对象进行连接

$object = new PDO($dsn,$user,$pass,array(PDO::ATTR_PERSISTENT => true));//建立长连接
//$object = new PDO($dsn, $user, $pass);//不建立长连接
$sql="select * from uesrTable";
$result = $object->query($sql);
$userlist = array();
while($arr=$result->fetch()) {
  $userlist[$arr[0]] = $arr[1];
}

连接成功后设置数据库操作$sql,最终得到的结果在$result中,通过fetch()函数得到具体参数,注意一次性取出的一行数据按照$arr[0,1,2,3.....]的顺序访问。

(3)一些基本的数据库操作举例:

①选择指定ID的一行数据

$sql = "select * from origintable WHERE (id = '{$clothid}')";
$sql = "select * from origintable WHERE (depository= '{$depository}' AND shelf = '{$k}')";

②插入一行新的数据

$sql ="INSERT INTO `gather`.`ordertable` VALUES ('{$time}', {$cnt}, '{$clothid}','{$clothflag}', '{$clothamount}','{$username}', '{$useraddress}',{$flag},'{$ordername}')";

注意这里的$cnt与$flag没有在{}外加' ',因为它们并不是字符串类型,这个时候加了字符串写入数据会出现错误。

③删除指定ID的数据

$sql ="DELETE FROM `gather`.`projecttable` WHERE (`time` = '{$time}')";

 

(4)PDO查看错误信息

如果读写数据的时候前端没有返回值,但是后台PHP没有报错,那么很有可能就是PDO交互数据时没有成功,因此导致返回值不正确,这个时候查看对应的错误信息可以帮助debug。主要操作如下:

$pdo->errorCode()
$pdo->errorInfo()

errorCode()只显示SQLSTATE的值

errorInfo()返回的错误信息的数组 数组中包含三个单元(SQLSTATE,CODE,INFO)

 

(5)结果返回给前端

将数据经过json编码后传给前端,然后前端中的success或者error函数会根据操作执行成功与否对应执行,此时就完成了整个交互过程。

echo json_encode($result);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值