PDO - Fatal error: Call to a member function prepare() on null
我在这里搜索了类似的问题,但是无法解决我的问题。
我正在尝试向我的网站添加搜索功能,但是由于某些原因,搜索结果没有显示。 在我的error_log中,出现以下错误:
PHP Fatal error: Call to a member function prepare() on null in /home/..../search.php on line 9
这是这行:
1 | $query = $pdo->prepare("SELECT * FROM subs WHERE sub_title LIKE '%$search%' LIMIT 0, 10"); |
这是我的search.php代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <?php require_once('includes/config.php'); include("includes/header.php"); // Search from MySQL database table $search = $_POST['search']; $query = $pdo->prepare("SELECT * FROM subs WHERE sub_title LIKE '%$search%' LIMIT 0, 10"); $query->bindValue(1,"%$search%", PDO::PARAM_STR); $query->execute(); // Display search result if(!$query->rowCount() == 0) { echo"Search found:"; echo"<table>"; echo"<tr><td>Title</td><td>Category></td><td>Language</td><td>Time</td><td>Download</td></tr>"; while($results = $query->fetch()) { echo"<tr><td>"; echo $results['sub_title']; echo"</td><td>"; echo $results['category']; echo"</td><td>"; echo $results['sub_lang']; echo"</td><td>"; echo $results['timestamp']; echo"</td><td>"; echo $results['sub_data']; echo"</td></tr>"; } echo"</table>"; } else { echo"Nothing found"; } ?> |
这是我的config.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $username = '------'; $password = '------'; try { $conn = new PDO('mysql:host=localhost;dbname=-----', $username, $password, array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION )); } catch(PDOException $e) { echo"Failed to connect to database!" .""; echo $e->getMessage(); } ?> |
这是我的搜索表,它位于header.php中
1 2 3 | <form class="form-inline" action="search.php" method="POST"> <input class="form-control" name="search" id="search" type="text" placeholder="Search"> </form> |
您正在使用:
它应该是:
因为我是一个懒惰的编码器,所以我制作了一个新类来节省一些时间:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class DBCommon { private $conn; /** @var Common */ public $common; public function __construct() { $database = new Database(); $db = $database->dbConnection(); $this->conn = $db; } public function runQuery($sql) { $stmt = $this->conn->prepare($sql); return $stmt; } } |