2017-11-21 20 views
-4

致命的なエラーが発生しました。私はstackoverflowやその他のフォーラムで解決策を見つけようとしましたが、見つからないようです。致命的なエラー:文字列のメンバー関数query()を呼び出す

Fatal error: Call to a member function query() on string in /home/......./check.php on line 19

class M_login extends CI_Model{ 
    public function num_of_students($name,$adress){  
     $sql="select * from tbl_admin where name='$name' and address='$address'";  
     $query=$this->db->query($sql);  
     return $query->num_rows(); 
    } 
+0

'$ this-> db'の内容は何ですか? –

+1

[Little Bobby](http://bobby-tables.com/)は** [あなたはSQLインジェクション攻撃の危険にさらされている可能性があります](https://stackoverflow.com/q/60174/)**と言います。 [パラメータ化されたクエリ](https://stackoverflow.com/a/4712113/5827005)で[Prepared Statements](https://en.wikipedia.org/wiki/Prepared_statement)について学んでください。パラメータ化されていないクエリを使用するよりも、非常に簡単で、きれいで、安全であるように、私は[PDO]を勧めました(https://github.com/GrumpyCrouton/GrumpyPDO)。また、[この記事](https://phpdelusions.net/pdo/mysqli_comparison)は、 'MySQLi'と' PDO'を選択するのに役立ちます – GrumpyCrouton

+2

**プレーンテキストのパスワードを保存しないでください!** PHPの[パスワードのセキュリティを処理するために、 '' in functions ''(http://jayblanchard.net/proper_password_hashing_with_PHP.html)**( '' password_hash() ''と '' password_verify() ') 5.5より小さいPHPバージョンを使用している場合、 'password_hash()' [互換パック](https://github.com/ircmaxell/password_compat)を使用することができます。 **ハッシュする前に[パスワードをエスケープする](http://stackoverflow.com/q/36628418/1011527)必要はありません。また、他のクレンジングメカニズムを使用することもできます。パスワードを変更すると_パスワードが変更され、不要な追加のコーディングが発生します。 – GrumpyCrouton

答えて

0
public function num_of_students($name,$adress){  
    $sql="select * from tbl_admin where name='$name' and address='$address'";  
    $query=$this->db->query($sql)->get();  
    return $query->num_rows(); 
} 

私は、これはあなたを助けることを願って...ありがとう:よう

エラーが見えます!

関連する問題