2017-03-27 32 views
0

URLを訪問するだけでDBエントリを自動作成する方法を見つけようとしています。 URLは、新しい1日に1回訪問されるはずです。新しいDBエントリを自動作成する関数を作成します。

これは私が今しようとしている私の関数である。

function createMedOne() { 
$medid = "1"; 
$mname = "Name1"; 
$menh = "Amount 1"; 
$mtime = "17:23"; 
$mdte = date("Y-m-d"); 
$mhtml = '<tr class="" id="med1"> 
     <td><p style="font-weight: bold;">Name1</p></td> 
     <td>Amount 1</td> 
     <td>Kl: 17:23</td> 
     <td><button type="button" class="btn btn-warning btn-sm" style="float: right;">Sign</button></td> 
     </tr>'; 

$reg_med->addmed($medid,$mname,$menh,$mtime,$mdte,$mhtml); 
} 

createMedOne(); 

その他の機能:

function addmed($medid,$mname,$menh,$mtime,$mdte,$mhtml) 
{ 
    try 
    {  
    $stmt = $this->conn->prepare("INSERT INTO tbl_med(medID,medName,medEnh,medTime,medDate,medHtml) 
               VALUES(:med_Id, :med_name, :med_enh, :med_time, :med_date, :med_html)");            
    $stmt->bindparam(":med_Id",$medid);  //id of the med 
    $stmt->bindparam(":med_name",$mname); //name of the med 
    $stmt->bindparam(":med_enh",$menh);  //the amount 
    $stmt->bindparam(":med_time",$mtime); //When to give med 
    $stmt->bindparam(":med_date",$mdte);  //date 
    $stmt->bindparam(":med_html",$mhtml); //the html-code to generate content 
    $stmt->execute(); 
    return $stmt; 
    } 
    catch(PDOException $ex) 
    { 
    echo $ex->getMessage(); 
    } 
} 

私は、URLにアクセスすると、私は次のエラーを取得する:

Fatal error: Call to a member function addmed() on null in test2.php on line 20

これはcreateMedOne関数を指していますが、私は何かを見逃していることがわかりませんが、私はobviosly持っています。

+1

私は自分で自己作成しましたが、私はあなたを助けることができますか? –

+0

それは[可変スコープです](http://stackoverflow.com/q/16959576/1415724) –

+0

[PHP呼び出しのクラスメソッド/関数]の重複している可能性があります(http://stackoverflow.com/questions/15499513/php-call -class-method-function) – miken32

答えて

1

あなたは、これは、クラスメソッドである

$stmt = $this->conn->prepare(...) 

でしょうか?これはクラスメソッドである場合は、クラスオブジェクトを作成する必要があり、その後、あなたのメソッドを呼び出す:

$reg_med = new classWithMethodAddmed(); 
$reg_med->addmed(...); 

するか、彼らは同じクラスのメソッドであれば、あなたは$これを使用することによりaddmed呼び出す必要があります:

$this->addmed(...) 
+0

はい、addmed()関数はクラス内に記述されています。 質問を完全なコードで更新しました。それは良く見えるか悪化するか? :) – Danahlen

+0

$ reg_medオブジェクトを使用しますが、createMedOne関数内で開始する必要があります。何かが好きです:$ reg_med = new classWithMethodAddmed() – Nutscracker

+0

もちろん!それで解決しました、ありがとう! – Danahlen

関連する問題