2016-12-14 19 views
0

ここで同様の問題を検索しましたが、問題を解決できませんでした。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> 
+2

私はあなたがおそらく$ pdoの代わりに$ conn – e4c5

答えて

0

をheader.phpの時間:

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; 
    } 
} 
+0

ありがとう! – PapT

関連する問題