ここで同様の問題を検索しましたが、問題を解決できませんでした。PDO - 致命的なエラー:メンバー関数(null)のprepare()を呼び出す
私は自分のウェブサイトに検索機能を追加しようとしていますが、何らかの理由で検索結果が表示されません。私のerror_logには、私はこのエラーを取得する:
このラインであるPHP Fatal error: Call to a member function prepare() on null in /home/..../search.php on line 9
:ここ
$query = $pdo->prepare("SELECT * FROM subs WHERE sub_title LIKE '%$search%' LIMIT 0, 10");
は私のsearch.phpコードです:
<?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:<br>";
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は
です<?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!" . "<br><br>";
echo $e->getMessage();
}
?>
ここには私の検索フォームがあります$query = $pdo->prepare
は
は、それは次のようになります:私はので
$query = $conn->prepare()
は怠惰なコーダが、私は少しを保存するために新しいクラスを作った彼は、あなたが使用している
<form class="form-inline" action="search.php" method="POST">
<input class="form-control" name="search" id="search" type="text" placeholder="Search">
</form>
私はあなたがおそらく$ pdoの代わりに$ conn – e4c5