php抓取网页数据插入数据库(如果你是php萌新,我建议你先去看一下php如何链接数据库)

优采云 发布时间: 2022-01-19 03:03

  php抓取网页数据插入数据库(如果你是php萌新,我建议你先去看一下php如何链接数据库)

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

  如果你是php新手,建议你先看看php是如何链接数据库的,这个文章,以便更好的理解和学的更透彻!

  

  首先我们来看看跨域,通常我们是这样解决的:

  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 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线