ホームページ  >  記事  >  バックエンド開発  >  PHP で時間ごとに MySQL データベースを作成するにはどうすればよいですか?

PHP で時間ごとに MySQL データベースを作成するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 14:03:04769ブラウズ

現在、月ごとにデータベースを作成する必要があります (つまり、date('Ym'))。現在の SQL ステートメント:

$sql = "CREATE TABLE IF NOT EXISTS time (file_id int(10) auto_increment primary key,filename varchar(60),filepath varchar(60),filesize int(10),uploadtime date)";

時刻が time=date('Ym') に割り当てられている場合、エラーが報告されます。 (SQL構文が正しくありません 正しい)、正しく書くにはどうすればよいですか?


ディスカッションへの返信 (解決策)

MySQL では通常、テーブル名とフィールド名が変数の命名規則に準拠する必要があります。
つまり、文字またはアンダースコアで始まり、その後に文字、数字、アンダースコアのいくつかの組み合わせが続きます
変数の命名規則に準拠していない名前、または mysql の予約語を満たす名前の場合は、エスケープで囲む必要があります文字 `
CREATE TABLE IF NOT EXISTS `201303` (....
以上です

MySQL では通常、変数の命名規則に準拠するテーブル名とフィールド名が必要です。
つまり、文字またはアンダースコアで始まり、その後にいくつかの文字が続きます文字、数字、アンダースコアの組み合わせ
名前が変数の命名規則に準拠していない場合、または名前が mysql の予約語である場合は、エスケープ文字で囲む必要があります `
CREATE TABLE IF NOT EXISTS `201303` ( ....
以上です
次に、変数をエスケープする方法は? たとえば、$dbtime=date('Ym') の場合、データベース名は $dbtime です。その後、ステートメントをどのように記述するか

わかりません。やりたいこと

何をしたいのかわかりません
たとえば、2013 年 3 月の場合、特定のデータベースに 201303 という新しいデータ テーブルを作成します (存在しない場合)。 ; 4 月に 201304 という新しいデータ テーブルを作成する、というように、正しい SQL ステートメントの書き方を知る必要があります。 `$dbtime` ( .... ";

実際、前に文字を追加すると単純明快ではないでしょうか?
$ dbtime = 't' . date('Ym');
$sql = "存在しない場合はテーブルを作成 $dbtime ( .... ";


$dbtime = date('Ym');
$sql = " 存在しない場合はテーブルを作成 `$dbtime` ( .... ";

実際、前に文字を追加すると簡単で明確です
$dbtime = 't' . date('Ym');
$sql = " CREATE TABLE IF NOT EXISTS $dbtime ( .... ";
この方法はうまくいきました。共有します。その前の t を削除する方法を見つけます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。