php从mysql提取数据返回到前端_php如何链接数据库获取数据返回前端,简称php如何写接口...

本文介绍如何使用PHP连接MySQL数据库,执行查询、更新、插入和删除操作,并返回数据到前端。通过设置头部解决跨域问题,封装数据库连接函数,并提供简单数据库语句示例。
摘要由CSDN通过智能技术生成

php如何链接数据库获取数据返回前端,简称php如何写接口。

如果你是php萌新,我建议你先去看一下 php如何链接数据库,这个文章,以便更好的了解,学习的更彻底!

0ded36dba23d0d296dbad69972cdc77c.png

首先了解一下跨域,通常我们这样解决:

header("Access-Control-Allow-Origin:*"); //跨域名

header("Access-Control-Allow-Headers:*"); //跨端口

这个看情况使用,他还有很多参数,这个自行百度一下,这些都是干货。

//格式,这个也很多,也百度一下

header("Content-type:text/html;charset=utf-8");

我们先封装一下代码,php是可以引入文件的,就是类似与vue那样的写法。

我们先建一个文件为:config.php(这个随意啊,不过通常都是这样)

//为什么要设置 $n=null,避免没有值报错

function db_infos($n = null)

{

/* 数据库主机名称 */

$db_host = '127.0.0.1';

/* 数据库用户帐号 */

$db_user = 'root';

/* 数据库用户密码 */

$db_passw = 'root';

/* 数据库具体名称 */

$db_name = 'root';

if ($n === 1) {

return $db_host;

}

if ($n === 2) {

return $db_user;

}

if ($n === 3) {

return $db_passw;

}

if ($n === 4) {

return $db_name;

}

};

/* 查询 */

//$sql就是数据库语句

function selects($sql = null)

{

if (!$sql) {

$conn = null;

exit;

}

$db_host = db_infos(1);

$db_user = db_infos(2);

$db_passw = db_infos(3);

$db_name = db_infos(4);

$conn = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_passw);

$conn->query("SET NAMES utf8");

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $conn->query($sql);

$stmt->execute();

$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);

$result = $stmt->fetchAll();

$conn = null;

if (count($result) > 1) {

return $result;

} else {

if(count($result) > 0){

return $result;

}else{

return false;

}

}

}

/* 更新 */

function updates($sql = null)

{

if (!$sql) {

$conn = null;

exit;

}

$db_host = db_infos(1);

$db_user = db_infos(2);

$db_passw = db_infos(3);

$db_name = db_infos(4);

$conn = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_passw);

$conn->query("SET NAMES utf8");

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

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

$res = $stmt->execute();

$conn = null;

return $res;

}

/* 插入 */

function inserts($sql = null)

{

if (!$sql) {

$conn = null;

exit;

}

$db_host = db_infos(1);

$db_user = db_infos(2);

$db_passw = db_infos(3);

$db_name = db_infos(4);

$conn = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_passw);

$conn->query("SET NAMES utf8");

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

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

$res = $stmt->execute();

$conn = null;

return $res;

}

/* 删除 */

function deletes($sql)

{

if (!$sql) {

$conn = null;

exit;

}

$db_host = db_infos(1);

$db_user = db_infos(2);

$db_passw = db_infos(3);

$db_name = db_infos(4);

$conn = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_passw);

$conn->query("SET NAMES utf8");

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

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

$res = $stmt->execute();

$conn = null;

return $res;

}

特别注意一下 $stmt = $conn->prepare($sql); 查询使用query其他的使用prepare,如果其他的使用query就会报错。

简单的封装了一下,我们接下来讲讲怎么使用

如,在index.php中引入,这个时候就可以调用方法了。

include './config.php';

echo selects("SELECT * FROM user WHERE id=1");

现在我们会了操作数据库了,这个时候还不能算是接口,要能获取和返回才能算是接口,现在我们来看看怎么获取前端的参数:

$data = file_get_contents('php://input');

//格式化一下

$d = json_decode($data);

//获取前端的传递过来的参数,如id

$id = $d->id;

//假如我们需要搜索user表里面id为1的用户

echo selects("SELECT * FROM user WHERE id='{$id}'");

前端ajax、axios等需要设置headers:

headers: {

"Content-type": "application/json; charset=utf-8"

},

到了这里基本是可以算是能写接口了,但是这是不够的,有个很重要的是,数据库语句你要会呀,不会,会php也没用,所以赶紧去学习一下数据库语句。

我们简单的教大家几句数据库语句,包含了,增、删、改、查的一些基本语句:

//查询user表所有

SELECT * FROM user

//查询user表id为1的

SELECT * FROM user WHERE id=1

//修改user表id为1用户的name

UPDATE user SET name='你好' WHERE id='1'

//user插入

INSERT INTO user(name) VALUES('你好2')

//删除

DELETE FROM user WHERE id='1'

知道了写数据库语句,那么基本的都可以应付过来,大家可以尝试的做个简单的博客来试试。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值