一般的な PHP システム Web サイトの場合、インストール中にデータベースにテーブルを作成するにはどうすればよいですか?
たとえば、123.sql ファイルはすでにあります
次に、インストール ページを作成します。[送信] をクリックして、指定されたテーブルに 123.sql をインポートします
コード?
-----解決策---------
クエリ(ファイルコンテンツ) ;
------解決策---------
PHP コード
<?php
if(...){//審査員提出
//データベースに接続します...
$path="./123.sql";//123.sql は PHP ファイルのアドレスに対する相対値です
mysql_query("ソース $パス");
}
<br><font color="#e78608">------解決策---------</font><br>
ログイン後にコピー
------解決策---------
これは本当に可能ですか?
ふざけるなよ
------解決策------------------
プログラムをインストールするオープンソース プロジェクトを見つけてインストールすれば、わかります。
dedecms、一目瞭然です
おおよそ以下の通りです
sql-dftables.txt
DROP TABLE IF EXISTS `#@__addonarticle`;
CREATE TABLE ` #@__addonarticle` (
`aid` middleint(8) unsigned NOT NULL デフォルト '0',
`typeid` smallint(5) unsigned NOT NULL デフォルト '0',
`body` mediatext,
`redirecturl` varchar(255) NOT NULL デフォルト '',
`templet` varchar(30) NOT NULL デフォルト '',
`userip` char(15) NOT NULL デフォルト '',
主キー (`aid `),
KEY `typeid` (`typeid`)
) TYPE=MyISAM;
DROP TABLE IF EXISTS `#@__addonimages`;
CREATE TABLE ` #@__addonimages` (
`aid` middleint(8) unsigned NOT NULL デフォルト '0',
`typeid` smallint(5) unsigned NOT NULL デフォルト '0',
`pagestyle` smallint(6) ) NOT NULL デフォルト ' 1'、
`maxwidth` smallint(6) NOT NULL デフォルト '600'、
`imgurls` テキスト、
`row` smallint(6) NOT NULL デフォルト '0'、
`col ` smallint(6) NOT NULL デフォルト '0',
`isrm` smallint(6) NOT NULL デフォルト '0',
`ddmaxwidth` smallint(6) NOT NULL デフォルト '200' ,
`pagepicnum` smallint(6) NOT NULL デフォルト '12',
`templet` varchar(30) NOT NULL デフォルト '',
`userip` char(15) NOT NULL デフォルト '',
`redirecturl ` varchar(255) NOT NULL デフォルト '',
`body` mediatext,
PRIMARY KEY (`aid`),
KEY `imagesMain` (`typeid`)
) TYPE=MyISAM;
DROP TABLE IF EXISTS `#@__addoninfos`;
CREATE TABLE `#@__addoninfos` (
`aid` int(11) NOT NULL デフォルト '0',
`typeid` int(11) NOT NULL デフォルト '0',
`channel` smallint(6) NOT NULL デフォルト '0',
`arcrank` smallint(6) NOT NULL デフォルト '0'、
`mid ` mediaint(8) unsigned NOT NULL デフォルト '0',
`click` int(10) unsigned NOT NULL デフォルト '0',
`title` varchar(60) NOT NULL デフォルト ' ',
`litpic` varchar(60) NOT NULL デフォルト '',
`userip` varchar(15) NOT NULL デフォルト ' ',
`senddate` int(11) NOT NULL デフォルト '0' ,
` flag` set('c','h','p','f','s','j','a','b') デフォルト NULL,
`lastpost` int(10) unsigned NOT NULL デフォルト '0',
`scores` mediaint(8) NOT NULL デフォルト '0',
`goodpost` mediaint(8) unsigned NOT NULL デフォルト '0',
`badpost` mediaint( 8) unsigned NOT NULL デフォルト '0',
`nativeplace` smallint(5) unsigned NOT NULL デフォルト '0',
`infotype` smallint(5) unsigned NOT NULL デフォルト '0' ,
`body` mediatext,
`endtime` int(11) NOT NULL デフォルト '0',
`tel` varchar(50) NOT NULL デフォルト '',
`email` varchar( 50) NOT NULL デフォルト '',
`address` varchar(100) NOT NULL デフォルト '',
`linkman` varchar(50) NOT NULL デフォルト '',
主キー (`aid`) 、
KEY `typeid` (`typeid`、`nativeplace`、`infotype`)、
KEY `channel` (`channel`、`arcrank`、`mid`、`click`、`title`、 `litpic`、`senddate`、`flag`、`endtime`)
) TYPE=MyISAM;
。 。 。 。
PHP コード
$クエリ = '';
$fp = fopen(dirname(__FILE__).'/sql-dftables.txt','r');
while(!feof($fp))
{
$line = rtrim(fgets($fp,1024));
if(ereg(";$",$line))
{
$query .= $line."n";
$query = str_replace('#@__',$dbprefix,$query);
if($mysqlバージョン
ログイン後にコピー