次のようなクエリメソッドがあります。
class classOne {
// Relevant variables
protected $db, $result;
public function query ($sql) {
$this->result = $this->db->query($sql);
// So, run mysql query provided by the argument
}
}
次に、次のような挿入メソッド:
class classTwo extends classOne {
public function insertStuff ($id, $text) {
$this->query("INSERT INTO Tablename (id, text, time) VALUES ($id, $text, NOW())");
}
}
次に、クラスをインスタンス化し$c = new classTwo;
、メソッドを呼び出します (両方とも別の php ファイルにありますが、クラス ファイルと同じフォルダーにあります) $c->insertStuff(1, "This is a test");
。
エラーは発生しません。テーブルにはフィールドがなく、空のフィールドもありません。ただし、次のようなハードコードされた値でメソッドを直接使用します。
public function insertStuff ($id, $text) {
$this->query("INSERT INTO Tablename (id, text, time) VALUES (1, "Some text", NOW())");
}
それが動作します。次に、ハードコードされた値を1つずつ引数に置き換えて、いつ機能しなくなるかを確認しようとしましたが、フィールドを受け入れて新しい行を正常に挿入しましたが、他のファイルでメソッド呼び出しへのどの参照をNOW()
使用するとすぐに、$text
停止し、何も追加しません。
必要なファイルはすべて必要であり、そうでない場合はエラーがスローされます。よくわかりません。