ユーザーデータがデータベースに保存され、ファイルがファイルシステムに保存されているファイルと一緒にユーザーデータをアップロードする場合、整合性に関するベストプラクティスは何ですか?
現時点では、PHP と PDO を使用して次のコード スニペットのようなことを行います (コードはテストされていませんが、私の主張が理解されることを願っています)。User::insert メソッドの画像保存部分が気に入りません。これを回避する良い方法はありますか?
<?php
User::insert($name, $image, $ext);
Class User{
static public function insert($name, $image, $ext){
$conn = DB_config::get();
$conn->beginTransaction();
$sth = $conn->prepare("
INSERT INTO users (name)
values(:name)
;");
$sth->execute(array(
":name" => $name
));
if ($conn->lastInsertId() > -1 && Image::saveImage($image, IMAGE_PATH . $conn->lastInsertId(). $ext))
$conn->commit();
else
$conn->rollback();
return $conn->lastInsertId();
}
}
Class Image{
static public function saveimage($image, $filename){
$ext = self::getExtensionFromFilename($filename);
switch($ext){
case "jpg":
case "jpeg":
return imagejpeg(imagecreatefromstring($image), $filename);
}
return false;
}
?>