これが私のコードです:
class Photograph extends DatabaseObject {
protected static $table_name="photographs";
protected static $db_fields=array('id', 'filename', 'type', 'size', 'caption','album_id');
public $id;
public $filename;
public $type;
public $size;
public $caption;
//public $album_id;
protected static $album_id;
private $temp_path;
protected $upload_dir="images";
ここで、「$photos = Photograph::find_by_album();」のような別のページでこの関数を使用すると、
次のような SQL エラーが表示されます。「データベース クエリが失敗しました: SQL 構文にエラーがあります。1 行目の「=」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
public static function find_by_album($album_id='')
{
return self::find_by_sql("SELECT * FROM ".self::$table_name."WHERE album_id = ".self::$album_id."");
}
基本的に、ユーザーが入力した $album_id がデータベースで見つかった Album_id と等しい $table_name からデータベースに保存されているすべての値を取得することです。この問題は簡単だと思うかもしれませんが、残念ながら私は解決策を見つけることができません。アイデアはありますか?前もって感謝します。:)
編集:
Elias Ootegem氏に続き、
コードを修正したところ、次のようになりました
public static function find_by_album($album_id='')
{ return self::find_by_sql("SELECT * FROM ".self::$table_name." WHERE album_id = ".$album_id."");
}
ただし、それでも同じエラーが発生します。私はこのコードを使用してみました:
public static function find_by_album()
{ return self::find_by_sql("SELECT * FROM ".self::$table_name." WHERE album_id = ".$album_id."");
}
ここで、次のような別のエラーが表示されます: 未定義の変数: album_id
他のアイデアはありますか?