php - mysqlはローカルdbプロジェクトのスキーマを使用して、phpで新しいdbを作成するときにdb構造を作成します

原文 php mysql pdo

私は自分のローカルホストでプロジェクトに取り組んでおり、自分のローカルアプリがライブサイトで使用しているデータベース構造を使用したいと考えています。私はmysqlダンプを実行し、それを自分のpdo db作成スクリプト(ライブサイト上)に追加しようとしましたが、dbが作成されたとき、それらは構造化されていません。私は何が間違っているのかわからず、その例を見つけるのに苦労しています。私はポインタが欠けているものは素晴らしいだろうと私はよくわかりません。前もって感謝します

コード例

$host="localhost"; 
$root="root"; 
$root_password="root"; 
$user='newuser';

$pass='newpass';
$db= 'companyid' . $companyid; 
    try {
        $dbh = new PDO("mysql:host=$host", $root, $root_password);

        $dbh->exec("CREATE DATABASE `$db`;
                CREATE USER '$user'@'localhost' IDENTIFIED BY '$pass';
                GRANT ALL ON `$db`.* TO '$user'@'localhost';
                FLUSH PRIVILEGES;
                CREATE TABLE IF NOT EXISTS `address` (
  `address` varchar(50) COLLATE latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `checkpics`
--

CREATE TABLE IF NOT EXISTS `checkpics` (
  `image` varchar(120) COLLATE latin1_general_ci NOT NULL,
  `amount` decimal(10,0) NOT NULL,
  `date` date NOT NULL,
  `photosmall` varchar(64) COLLATE latin1_general_ci NOT NULL,
  `photobig` longblob NOT NULL,
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `customerid` int(10) NOT NULL,
  `checknumber` int(10) NOT NULL,
  `checkamount` varchar(10) COLLATE latin1_general_ci NOT NULL,
  `datepaid` varchar(10) COLLATE latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

-- --------------------------------------------------------

--
-- Table structure for table `CityStateZip`
--

CREATE TABLE IF NOT EXISTS `CityStateZip` (
  `city` varchar(30) COLLATE latin1_general_ci NOT NULL,
  `state` varchar(2) COLLATE latin1_general_ci NOT NULL,
  `zip` varchar(10) COLLATE latin1_general_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;") 
        or die(print_r($dbh->errorInfo(), true));

    } catch (PDOException $e) {
        die("DB ERROR: ". $e->getMessage());
    }
答え
問題はわかりました。複数のテーブルを作成するときは、個別のコマンドを実行するか、mysqli multi queryコマンドを使用して、各インスタンスを;で区切る必要があります。
関連記事

php - Functions.phpでメニューCSSワードプレスをオーバーライドする

php - Laravelブレードテンプレートを使用してJSONコンテンツをループする正しい方法?

php - WPパンくずリストに「カテゴリ」を追加したい

php - ajax post request content-type application / formdata vs application / jsonのJSON文字列

javascript - データベースからデータを取得した後、Googleマップにマーカーを表示する

php - Yii urlManagerでドメインを書き換える方法

php - Facebook Debugでサイトマップ全体をバッチ処理する方法は?

javascript - サブグループを作成するドロップダウンチェックリスト

php - 他のウェブサイトのデータベースにアクセスするには? [重複]

php - 製品データに対するifステートメントは、両方のステートメントがtrueの場合