1

[译] 快速开发:php数据对象和mariadb -m6米乐安卓版下载

原创 2022-03-08
812

原文地址:https://mariadb.com/resources/blog/developer-quickstart-php-data-objects-and-mariadb/
原文作者:rob hedgpeth

,我介绍了使用php的,来连接mariadb数据库并与之通信的过程。最后,当你写php代码来连接mariadb并与之交互时,你可能会使用两个常用选项之一:mysqli 或者 。

pdo插件旨在定义一个轻量级、一致性的接口,用在php访问数据库,就像mysqli一样。实际上,pdo和mysqli都提供了一个面向对象的api,但是mysqli也提供了一个面向过程的api,这使得php新手更容易理解。

现在,如果您熟悉原生的php mysql驱动,您可能会发现迁移到面向过程的mysqli接口更加容易。另一方面,一旦您掌握了pdo,您可以使用它连接任何数据库,这对于从另一个数据库切换到mariadb非常有用。

在这篇文章,我将深入pdo并演示如何使用它与mariadb进行通信。 因此,让我们进入一个应用程序,了解如何使用pdo连接和查询mariadb数据库。

developerphpquickstart.gif

本文中,我将重点介绍使用pdo连接mariadb数据库并与之通信的一些基本细节。我探讨的所有内容都将基于rolodex应用程序的代码,如果您想深入了解代码,可以查看。

准备数据库

在开始编码之前,重点要注意的是这将使用一个名为rolodex的数据库。

create database `rolodex`;

数据库rolodex包含一张表,contacts,它用于存储基本信息。

create table `rolodex`.`contacts` ( `id` int(11) not null auto_increment, `name` varchar(100) not null, `age` int(3) not null, `email` varchar(100) not null, primary key (`id`) );

rolodex应用运行所需的sql可以从这个文件里找到 。

配置应用

为了方便在rolodex php应用中使用mariadb数据库,我创建了一个名为 的新文件,它包含了配置项和数据库连接对象来在跨php页面中重用。pdo扩展便于与底层mariadb数据库进行连接和通信。

config.php

$dsn = "mysql:host=;dbname=rolodex;charset=utf8mb4"; $options = [ pdo::attr_emulate_prepares => false, // disable emulation mode for "real" prepared statements pdo::attr_errmode => pdo::errmode_exception, // disable errors in the form of exceptions pdo::attr_default_fetch_mode => pdo::fetch_assoc, // make the default fetch be an associative array ]; try { $pdo = new pdo($dsn, "", "", $options); } catch (exception $e) { error_log($e->getmessage()); exit('something bad happened'); } ?>

在config.php文件中,我首先定义了变量,包含主机地址、用户名、密码和默认数据库等,这些变量用于创建新的,该对象包含各种配置项,您可以使用它来定制您的环境。

执行sql

使用并重用 config.php中的pdo连接很简单,只需在另一个php页面中引用php代码库即可。

// include the database connection file include_once("config.php"); ... ?>

然后,有了已建立的连接,您就可以使用pdo扩展的多种功能,包括使用 执行查询。注意,我还演示了如何将结果直接映射到一个名为 contact 的类。

使用 pdo::query 查询 contants:

// include the database connection file include_once("config.php"); // php class class contact { public $id; public $name; public $age; public $email; } // fetch contacts (in descending order) $contacts = $pdo->query( "select * from contacts order by id desc")->fetchall(pdo::fetch_class, 'contact'); ?>

或者,在需要处理动态插入参数值的情况下,可以使用 。

插入数据

使用 pdo::prepare 插入 contacts

$stmt = $pdo->prepare("insert into contacts (name,age,email) values(?, ?, ?)"); $stmt->execute([$name, $age, $email]);

更新数据

使用 pdo::prepare 更新 contacts

$stmt = $pdo->prepare("update contacts set name = ?, age = ?, email = ? where id = ?"); $stmt->execute([$name, $age, $email, $id]);

删除数据

使用 pdo::prepare 删除 contacts

$stmt = $pdo->prepare("delete from contacts where id = ?"); $stmt->execute([$id]);

如您所见,开始使用pdo和mariadb很容易,但我们只触及了其表面。如果你想亲自看看php和mariadb还能做些什么,可以从新的github仓库 中rolodex应用程序的完整源码开始。

了解更多

如果您想了解更多关于json和mariadb的功能,或者关于mariadb的许多其他特性和功能,请务必查看和我们新的。在那里您可以找到更多类似的内容,横跨了多种其他技术、用例甚至编程语言。

您还可以在中更深入地了解mariadb功能。

和往常一样,感谢我们优秀的社区!如果您想参与贡献,可以在上找到我们,或直接发送反馈到邮箱developers@mariadb.com,或加入新的!

最后修改时间:2022-03-08 14:05:54
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

网站地图