2017-08-25 28 views
-1

私はその後、私はなぜpdoが定義されていないのですか?

public static function insert_admin($name,$pass){ 
// require_once("/connect.php"); 
$security = "[email protected]/n/?"; 
$pass = md5($pass,PASSWORD_DEFAULT).$security; 
$sql = "INSERT INTO admin(username,password) VALUES(:username,:password)"; 

$stmt = $pdo->prepare($sql); (line 79) 
$stmt->bindParam(':username',$name,PDO::PARAM_STR); 
$stmt->bindParam(':password',$pass,PDO::PARAM_STR); 
$stmt->execute(); 

$pdo = null; 


} 

あるdb_operationsクラスにデータを追加する機能を

<?php 

//$dsn ='mysql:dbname=medicare;host=localhost'; 
$me = "root"; 
$password =""; 

try{ 
$pdo = new PDO('mysql:host=localhost;dbname=medicare',$me,$password); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $e){ 
echo"Error!:".$e->getMessage()."<br>"; 
die(); 


} 

?> 

あるDB接続のためのスクリプトを持っている。しかし、それは

あり

Notice: Undefined variable: pdo in F:\xampp\htdocs\medicare\Model\class_db_operations.php on line 79

Fatal error: Call to a member function prepare() on a non-object in F:\xampp\htdocs\medicare\Model\class_db_operations.php on line 79 someone please help.

+2

変数 '$ pdo'を関数に渡す必要がある場合は、関数に渡す必要があります。 –

+0

もう少し明確なヒントを教えてください。 –

+0

接続ファイルが必要です。require_once(__ CONNECTION_FILE_); – okante

答えて

0

を示しています$pdo->prepare()が呼び出されたときには$pdoが定義されていません。引数として渡すか、オブジェクトとして使用できるようにする必要があります。プロパティを設定し、別のメソッドで設定します。

+0

私にこの概念を明確にする役に立つリンクや例を教えてください。 –

+0

私はPHPの基本でそれを見つけられませんでしたが、それは非常に単純です。関数内で変数を使用することはできません。関数内で定義されていない場合、コード自体でも引数として渡されてもその関数がオブジェクトメソッドの場合はプロパティからアクセスし、変数がグローバルスコープで定義されている場合はキーワード 'global'を使用します。 – ksjohn

0
public static function insert_admin($name,$pass){ 
// require_once("/connect.php"); 
global $pdo; 
$security = "[email protected]/n/?"; 
$pass = md5($pass,PASSWORD_DEFAULT).$security; 
$sql = "INSERT INTO admin(username,password) VALUES(:username,:password)"; 

$stmt = $pdo->prepare($sql); (line 79) 
$stmt->bindParam(':username',$name,PDO::PARAM_STR); 
$stmt->bindParam(':password',$pass,PDO::PARAM_STR); 
$stmt->execute(); 

$pdo = null; 


} 

最後に$ pdoをnullに設定していますか?

+0

ありがとうございます。できます。 –

+0

ありがとうございます。できます。 –

関連する問題