我试图将一些旧的php mysql代码转换为PDO格式,但卡住了。我已经看过这里的其他帖子,但无法弄清楚。将mysql转换为PDO格式
这是旧代码:
<?php
if (isset($_POST['query'])) {
// Connect to database
mysql_connect("localhost", "xxxxx", "xxxxx");
mysql_select_db("xxxxx");
// Retrieve the query
$query = $_POST['query'];
// Search the database for all similar items
$sql = mysql_query("SELECT * FROM articles WHERE title LIKE '%{$query}%'");
$array = array();
while ($row = mysql_fetch_assoc($sql))
{
$array[] = $row['title'];
}
// Return the json array
echo json_encode($array);
}
?>
这是我所能够做到的,但觉得有什么不对的“而”部分。
<?php
if (isset($_POST['query'])) {
require("config.php");
$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
// Retrieve the query
$query = $_POST['query'];
// Search the database for all similar items
$sql = "SELECT * FROM articles WHERE title LIKE '%{$query}%'";
$array = array();
while ($row = $sql->fetchAll()) {
$array[] = $row['title'];
}
// Return the json array
echo json_encode($array);
}
?>
'$ sql'是一个字符串,所以当你试图调用'fetchAll'时,它会导致一个错误,指出沿着“试图调用一个非对象的方法”的行。 (我忘记了确切的措词。)如果你有错误报告,你会收到通知。 – bcmcfc