2012-03-26 4 views
-4

エラー:致命的なエラー:C内の非オブジェクトのメンバ関数escapeString()の呼び出し: xamppの htdocsに results.phpライン上の17

Fatal error: Call to a member function escapeString() on a non-object in C:\xampp\htdocs\results.php on line 17

17行目:

$searchterm=$db->escapeString($_GET['searchterm']); 

私がローカルホスト上でMySQLを使用していますのmysql.php

public function escapeString($value){ 

return mysql_escape_string($value); 

} 

に呼ばれています。

+0

'$ db'が実際にオブジェクトであることを確認してください。エラーメッセージには、そうでないことが示されています。 –

+0

それは確かです。それはデータベース名です。 – Ethan

+0

mysql_escape_stringは推奨されておらず、代わりにmysql_real_escape_string()を使用してください。 m_e_s()はキャラクタセットの操作に対して脆弱であり、注入攻撃が漏洩する可能性があります。 –

答えて

1

あなたの$ db変数が正しく設定されていません。接続が失敗したり、何かが間違っている可能性があります。

は右の17の前の行にこれを行います。

var_dump($db); exit; 

チャンスはそれがnullまたは虚偽または接続が失敗したことを示すいくつかの他の非オブジェクトの値になりますです。もっと助けるために、どのデータベース接続(mysql、mysqli、PDOなど)をしようとしているかについてもっと知る必要があります。

+0

これは今ポップアップします:NULL。それはMySQLです。 – Ethan

+0

@Ethanこれは、変数が期待通りにオブジェクトではなく、 'null'であることを意味します。より多くのコードを見ることなく、それを修正する方法を教えることはできません。 – deceze

+1

@Ethan:あなたがpastebinに貼り付けたコードは、あなたが接続して$ conに設定していることを示しているようですが、$ dbを使い、そのメソッドを呼び出しています。手続き型のmysql_ stuffやオブジェクト指向のものからデータベースコードを混在させているようです。 mysql.phpの内容は何ですか? –

0

これは、あなたがエラーを回避するのに役立ちます:

if (is_object($db) && isset($_GET['searchterm'])) { 
    $searchterm=$db->escapeString($_GET['searchterm']); 
} 

あなたが上記のいずれかの項目を設定する問題を抱えている場合我々はより多くのコードが必要になります。

+0

さらに何が必要ですか? My results.php:http://pastebin.com/REBrqzLY – Ethan

+0

@Ethanそして、あなたの '$ db'変数はどこから来るはずですか? – deceze

+0

@deceze実際、どこからも来ていません。コマンドで何を宣言すればよいでしょうか? $ db = ??; – Ethan

関連する問題