質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

681閲覧

PHPでSQLテーブル構造をつくる際に、値も挿入する方法

退会済みユーザー

退会済みユーザー

総合スコア0

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/11/23 20:23

PHPでSQLテーブル構造をつくるコードは以下で出来ましたが、
例えば、Textarea1に初期値($X)を入れておくコードは可能なのでしょうか?

$X = 'あいうえお';

もし可能なら、
どのようなコードになるか教えて欲しいです。

検索しても、やりたいことが見つけられませんでした。
もしかしたら出来ないかもしれませんが、
よろしくお願い致します。

php

1$sql = "CREATE TABLE hoge ( 2`Id` int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL, 3`Textarea1` varchar(400) NOT NULL, 4`Textarea2` varchar(400) NOT NULL 5) ENGINE=InnoDB DEFAULT CHARSET=utf8"; 6$pdo->query($sql);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Textarea1に初期値($X)を入れておくコードは可能なのでしょうか?

やりたいことがちょっと微妙に不明なのですけど、
**「INSERT時に値が設定されていなかったときの初期値」**は設定できます。
CREATE TABLEはその名の通り、テーブルを作るだけですし、「1行もない状態で値を入れておく」ことはできません。Textarea2もnot nullに設定されてますし。

CREATE TABLE 構文

column_definition:
data_type [NOT NULL | NULL] [DEFAULT default_value]
[AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
[COMMENT 'string']
[COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]
[STORAGE {DISK|MEMORY|DEFAULT}]
[reference_definition]

例: Textarea1 varchar(400) default 'あいうえお' NOT NULL,

いずれにしてもSQLも1個ずつ実行されるので(バルクインサートで複数行挿入することはできるが)、
値を入れたいならCREATEしたあとにINSERTする必要があります。

しかし、ほとんどのケースでPHPからCREATE TABLEしなければならない要件ってないと思います。
そのPHP実行するたびにテーブル作ろうとしにいきますし、IF NOT EXISTSもついてないので2度目以降はエラーが返ってきます。
PHPから使う場合は「先に作っておいて利用する」ことが多いのでは。

投稿2020/11/23 20:36

編集2020/11/23 20:46
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/11/23 21:09

ご回答ありがとうございます。参考になります。 はい、今回のわたしのケースでは、 1回のみ実行を考えておりました。 素人なので浅はかかもしれませんが、 「先にテーブルを作っておいて」のテーブルの作り方は、 phpファイルを用意しておいて、ボタンをクリックするとポンと出来たほうが楽のように感じます。 それ以前は、phpmyadminにブラウザログインして、手動で作っていました。 話からそれましたが、「CREATEしたあとにINSERTする」、ありがとうございました。
m.ts10806

2020/11/23 21:13

>phpファイルを用意しておいて、ボタンをクリックするとポンと出来たほうが楽のように感じます。 「システム、アプリケーションの開発」という観点からすると、 「DBの構築」はあくまで「実装前の設定」の段階です。 実装の中に盛り込むのはおかしい話です。 phpMyAdminであろうと結局どこかでCREATE TABLE文を実行する必要があります。 それに1度しか実行しないものをわざわざPHPで実行するように組む方が手間では? 現場でよくあるのは「Excelでテーブル定義を作っておいてCREATE TABLE文を吐き出すマクロを組む(もしくはVBAで直接DBアクセスする)」ですし、フレームワークを利用していればマイグレーションという手があり、やはり「ボタンから実行する」というより、「定義だけ持っておいて実装前に実行するだけ」のことが多いです。
退会済みユーザー

退会済みユーザー

2020/11/23 21:21

プロの現場の方法を教えていただきありがとうございました。 周辺も含めまして、とても参考になりました。 わたしのケースでは実装することができました。 朝から幸福でした。
m.ts10806

2020/11/23 21:36

今一つどう解決したか不明なのですが、 プロじゃなくても「DB構築はあくまで設定の段階」というのはどのカテゴリでも通常の概念かと思います。 DBだけで何かするということはあり得ないわけですし、DB構築しないとアプリケーション実装はできないわけですし。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問