我是PHP的新手,在学习了语言的基础知识之后,我已经学习了一些关于PDO的教程,我只是想知道我的代码是否正确以及你们的建议是什么?我可以改为让它更安全,更快,更有效,你可以命名......
我已经通过大量的教程来实现这一结果,因此我认为我不会问你们,因为不是每个关于PHP的网上教程(有这么多)都是学习最佳实践的可靠来源。写好的代码。
这是我的代码。它只插入字符串'比尔盖茨'到数据库,称为“pdotest',table' tableOne'并排第一行'。我已经使用了持久性数据库连接,因为它可以使Web应用程序更快。我相信你们可以告诉我如何正确使用这个持久连接的东西,我可能还没有完全理解如何在我的代码中使用它。
<?php
// DB connect configuration
$user = 'user';
$pass = 'password';
// Database connection
try {
$conn = new PDO('mysql:host=localhost;dbname=pdotest', $user, $pass, array(
PDO::ATTR_PERSISTENT => true
));
}
catch(PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
$conn = null;
die();
}
// Data to insert (Bill Gates = Hero #1)
$data = 'Bill Gates';
try {
// The insert query
$sql = "INSERT INTO tableone (rowOne) VALUES (:rowOne)";
$q = $conn->prepare($sql);
$q->execute(array(':rowOne'=>$data));
// Example INSERT query with multiple VALUES
// $q->execute(array(':rowOne'=>$data, ':rowTwo'=>$dataTwo));
}
catch(PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
$conn = null;
die();
}
?>
答案 0 :(得分:1)
这显然效率低下,因为你的PHP必须运行两次以上的代码 以下代码就足够了
<?php
// DB connect configuration
$user = 'user';
$pass = 'password';
// Database connection
$dsn = "mysql:host=localhost;dbname=pdotest;charset=utf8";
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$conn = new PDO($dsn, $user, $pass, $opt);
$data = 'Bill Gates';
$sql = "INSERT INTO tableone (rowOne) VALUES (?)";
$q = $conn->prepare($sql);
$q->execute(array($data));
一些亮点