时间:2023-04-21 05:15:02 | 来源:网站运营
时间:2023-04-21 05:15:02 来源:网站运营
PHP PDO 简单教程:PHP 5.5 版本之前,我们有用于访问 MySQL 数据库的 mysql_ 命令,但由于安全性不足,它们最终被弃用。mysql_ 的弃用带来了访问数据库的两种主要方法:mysqli 和 PDO 库。大约 80% 的 Web 应用程序由 PHP 提供支持。类似地,SQL 也是如此。PHP 5.5 版本之前,我们有用于访问 MySQL 数据库的 mysql_ 命令,但由于安全性不足,它们最终被弃用。
-- Rishabh Kandari(作者)
$host = 'localhost';$db = 'theitstuff';$user = 'root';$pass = 'root';$charset = 'utf8mb4';$dsn = "mysql:host=$host;dbname=$db;charset=$charset";$conn = new PDO($dsn, $user, $pass);
之后,正如你在上面的代码中看到的,我们创建了 DSN 变量,DSN 变量只是一个保存数据库信息的变量。对于一些在外部服务器上运行 MySQL 的人,你还可以通过提供一个 port=$port_number
来调整端口号。$conn
变量,并提供了 $dsn
、$user
、$pass
参数。如果你遵循这些步骤,你现在应该有一个名为 $conn
的对象,它是 PDO 连接类的一个实例。现在是时候进入数据库并运行一些查询。$tis = $conn->query('SELECT name, age FROM students');while ($row = $tis->fetch()){ echo $row['name']."/t"; echo $row['age']; echo "<br>";}
这是使用 PDO 运行查询的最简单形式。我们首先创建了一个名为 tis
(TheITStuff 的缩写 )的变量,然后你可以看到我们使用了创建的 $conn
对象中的查询函数。while
循环并创建了一个 $row
变量来从 $tis
对象中获取内容,最后通过调用列名来显示每一行。位置参数
$tis = $conn->prepare("INSERT INTO STUDENTS(name, age) values(?, ?)");$tis->bindValue(1,'mike');$tis->bindValue(2,22);$tis->execute();
在上面的例子中,我们放置了两个问号,然后使用 bindValue()
函数将值映射到查询中。这些值绑定到语句问号中的位置。bindParam()
函数相同例子如下:$name='Rishabh'; $age=20;$tis = $conn->prepare("INSERT INTO STUDENTS(name, age) values(?, ?)");$tis->bindParam(1,$name);$tis->bindParam(2,$age);$tis->execute();
$name='Rishabh'; $age=20;$tis = $conn->prepare("INSERT INTO STUDENTS(name, age) values(:name, :age)");$tis->bindParam(':name', $name);$tis->bindParam(':age', $age);$tis->execute();
你可以注意到,唯一的变化是我使用 :name
和 :age
作为占位符,然后将变量映射到它们。冒号在参数之前使用,让 PDO 知道该位置是一个变量,这非常重要。bindValue()
来使用命名参数直接映射值。PDO::FETCH_ASSOC
来获取关联数组,PDO::FETCH_NUM
来获取数字数组,使用 PDO::FETCH_OBJ
来获取对象数组。$tis = $conn->prepare("SELECT * FROM STUDENTS");$tis->execute();$result = $tis->fetchAll(PDO::FETCH_ASSOC);
你可以看到我使用了 fetchAll
,因为我想要所有匹配的记录。如果只需要一行,你可以简单地使用 fetch
。foreach ($result as $lnu){ echo $lnu['name']; echo $lnu['age']."<br>";}
你可以看到,因为我请求了关联数组,所以我正在按名称访问各个成员。$conn
变量本身时,实际上可以将其设置为默认值。$options
数组,你可以在其中放入所有默认配置,只需在 $conn
变量中传递数组即可。$options = [ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,];$conn = new PDO($dsn, $user, $pass, $options);
这是一个非常简短和快速的 PDO 介绍,我们很快就会制作一个高级教程。如果你在理解本教程的任何部分时遇到任何困难,请在评论部分告诉我,我会在那你为你解答。关键词:教程,简单