sql >> データベース >  >> RDS >> Mysql

PHPを使用してMySQLデータベースから画像を保存および取得するにはどうすればよいですか?

    まず、次のように画像を保存するMySQLテーブルを作成します。

    create table testblob (
        image_id        tinyint(3)  not null default '0',
        image_type      varchar(25) not null default '',
        image           blob        not null,
        image_size      varchar(25) not null default '',
        image_ctgy      varchar(25) not null default '',
        image_name      varchar(50) not null default ''
    );
    

    次に、次のようにデータベースに画像を書き込むことができます:

    /***
     * All of the below MySQL_ commands can be easily
     * translated to MySQLi_ with the additions as commented
     ***/ 
    $imgData = file_get_contents($filename);
    $size = getimagesize($filename);
    mysql_connect("localhost", "$username", "$password");
    mysql_select_db ("$dbname");
    // mysqli 
    // $link = mysqli_connect("localhost", $username, $password,$dbname); 
    $sql = sprintf("INSERT INTO testblob
        (image_type, image, image_size, image_name)
        VALUES
        ('%s', '%s', '%d', '%s')",
        /***
         * For all mysqli_ functions below, the syntax is:
         * mysqli_whartever($link, $functionContents); 
         ***/
        mysql_real_escape_string($size['mime']),
        mysql_real_escape_string($imgData),
        $size[3],
        mysql_real_escape_string($_FILES['userfile']['name'])
        );
    mysql_query($sql);
    

    データベースの画像を次のWebページに表示できます:

    $link = mysql_connect("localhost", "username", "password");
    mysql_select_db("testblob");
    $sql = "SELECT image FROM testblob WHERE image_id=0";
    $result = mysql_query("$sql");
    header("Content-type: image/jpeg");
    echo mysql_result($result, 0);
    mysql_close($link);
    


    1. データベースデザイナは何をしますか?

    2. MicrosoftAccessでデータベースの破損を防ぐ方法

    3. GoアプリでDb接続の開閉を処理するにはどうすればよいですか?

    4. SQLiteでデータベースを作成する