简短的回答是肯定的,
如果您更熟悉 OOPHP,则可能值得创建一个包装类来帮助运行查询,但只需在文件中创建连接并将其包含在内即可完成工作
在上面的例子中,你可以把
try {
$conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
进入您的 db.php 并运行查询
$stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id');
$stmt->execute(array('id' => $id));
任何你需要的地方。
可能还值得一提的是,您不必将准备好的语句与 PDO 一起使用,这可以加快编码速度,但是如果您希望这样做,我强烈建议您使用数据库包装类
非准备语句
<?php
try {
$conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
$query = "
SELECT
col_1,
col_2
FROM
table_1
WHERE
col_3 = " . $conn->quote($_POST['input']); //the quotr is important, it escapes dangerous characters to prevent SQL injection
//this will run the query for an insert this is all thats needed
$statement = $conn->query($query);
//fetch single col
$col = $statement->fetch(PDO::FETCH_ASSOC);
//fetch all collums
$cols = $statement->fetchAll(PDO::FETCH_ASSOC);
这种方式的优点是您可以以更简单的方式构建查询 SQL,我不应该说我没有测试过这段代码,但理论上它应该没问题,因为这就是我进行数据库处理的方式
编辑:你的常识提出了echo 'ERROR: ' . $e->getMessage();
一个坏主意的好点,这是一个很好的例子,说明为什么你不应该盲目地复制和粘贴代码