アプリ版:「スタンプのみでお礼する」機能のリリースについて

私の環境は
 Windows 10
 MAMP 
 です。
「PHP 画像のアップロード Qiita」 サイトは以下のURLから見れます。
https://qiita.com/ryo-futebol/items/11dea44c6b68 …
以上のURLサイトの内容に
◆DBにはファイル名保存
◆DBのファイル名を元に画像表示
 とあります。
データーベースはMySQLでいいと思いますが
データーベースの設定の記載がありません。
たぶん それは 自分で ファイルのプログラム見ながら
任意で作成してくださいと思います。
この場合 
DB(データーベース名) と TB(テーブル名) を作りたいのですが!
 
1)DB名は$dsn = "mysql:host=localhost; dbname=xxx; なので
 dbname=xxx; DB名は任意で作成しなさいと思います。
  ・DB作成:CREATE DATABASE up; とします。
2)TB名は任意でいいのでしょうか?
  いずれにせよTB作成は必須なので、仮にTB名を image とした場合
 カラムは何が必要でしょうか?
  CREATE TABLE `image` (
   `picture` varchar(255) NOT NULL;
      他に何かありますか?
 よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    素晴らしい ご過当をいただきましてありがとうございました。
    助かります。
     以下の流れで作ってみました。
    mysql> use mysql -u root -proot
    Database changed
    mysql> use up
    Database changed
    mysql> CREATE TABLE `images`
    -> (`id` INT PRIMARY KEY AUTO_INCREMENT,
    -> `name` VARCHAR(255) NOT NULL)
    -> ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
    Query OK, 0 rows affected (0.01 sec)

      補足日時:2022/11/29 04:13

A 回答 (2件)

あと、MySQLの文字コードはutf8

    • good
    • 1
この回答へのお礼

ありがとうございました。
大変勉強になります。
 今後とも宜しくお願い致します。

お礼日時:2022/11/30 06:39

$dsn = "mysql:host=localhost; dbname=xxx; charset=utf8";



MySQLでデータベースがxxxはその通り。

$sql = "INSERT INTO images(name) VALUES (:image)";

$sql = "SELECT * FROM images WHERE id = :id";
〜中略〜
<?php echo $image['name']; ?>

表名はimages、列構成はidとname。
idはAUTO_INCREMENT列、nameがファイル名。
INSERT文でid列には値を格納せず、検索時はid列を条件にしているため、AUTO_INCREMENTであることが分かります。
リンク先で分かるのは、以上のことです。

nameの長さは、ファイル名の最大長をどうするかによります。

CREATE TABLE images
(id INT PRIMARY KEY AUTO_INCREMENT
,name VARCHAR(255) NOT NULL)
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!