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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

1回答

3173閲覧

MYSQL5.7でテーブル作成が出来ない

m.s.2000

総合スコア32

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2018/03/04 11:57

前提・実現したいこと

MYSQL5.7, PHP を使ってデータベースにテーブルを追加したいのですが、それが出来ない。

ビギナーな質問で申し訳ないですが、御教授願います。

発生している問題・エラーメッセージ

MYSQL5.6の時は問題なく出来ていたが、5.7にアップグレードされた途端出来なくなってしまった。

アウトプットの表示➡「テーブル作成に失敗しました」

該当のソースコード

$host="XXX"; $user="YYY"; $pass="ZZZ"; $dbname="DATABASE_NEW"; $tbname="TABLE_NEW"; //MYSQL接続 $db = mysql_connect($host,$user,$pass) or die("MYSQLへの接続に失敗しました"); //DB選択 mysql_select_db($dbname,$db) or die("DB選択に失敗しました"); //テーブル情報取得 $result=mysql_query("SHOW TABLES",$db) or die("テーブル取得に失敗しました"); //テーブル名チェック while($row=mysql_fetch_assoc($result)) { if($row["Tables_in_".$dbname]==$tbname) exit($tbname."は存在します"); } //テーブル作成 $sql = "CREATE TABLE `{$tbname}` ( `number_1` INT NULL AUTO_INCREMENT , `BLOG_NAME` VARCHAR(255) NOT NULL , PRIMARY KEY (`number_1`) ) ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;"; mysql_query($sql,$db) or die("テーブル作成に失敗しました");

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

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

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

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

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

guest

回答1

0

ベストアンサー

php

1mysql_query($sql,$db) or die(mysql_error());

と書き換えて実行すると、詳細なエラーメッセージが表示されるので、それを元に原因を特定しましょう。

http://php.net/manual/ja/function.mysql-error.php

投稿2018/03/04 12:35

編集2018/03/04 12:36
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

m.s.2000

2018/03/04 13:12

Kosuke_Shibuyaさんのおっしゃる通り 「mysql_query($sql,$db) or die(mysql_error());」を入れてみたところ 「All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead」 と表示されたので、 PRIMARY KEY を NULL にするな と警告しているのだ考え 「`number_1` INT NULL AUTO_INCREMENT ,」⇒`number_1` INT NOT NULL AUTO_INCREMENT ,」 としたところ解決しました。 これはMYSQL5.7特有の特性なのか?と疑問は残りますが 大変助かりました。 Kosuke_Shibuyaさんありあとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問