私はphpの新版Silexです。これらのテクノロジを使用してコードベースの上に小さなアプリケーションを開発しています。このような(接続オブジェクトのようなもの) - - $アプリ[ 'DB'] - コードベースから Doctrine DBAL Schema を使用してテーブルを作成できません。
は、私は、データベース・オブジェクトを取得しています$app->register(new Silex\Provider\DoctrineServiceProvider(), array(
'db.options' => array(
'driver' => 'pdo_sqlite',
'path' => __DIR__.'/app.db',
),
));
$アプリを[ 'DB']のために使用することができます既存のデータベースからデータを取得し、正常に動作しています。
しかし、私は次のコードを使用して、既存のDBにテーブルを追加しようとすると - 後で
use Doctrine\DBAL\Schema\Table;
$schema = $app['db']->getSchemaManager();
if (!$schema->tablesExist('users'))
{
$users = new Table('users');
$users->addColumn('id', 'integer', array('unsigned' => true, 'autoincrement' => true));
$users->setPrimaryKey(array('id'));
$users->addColumn('username', 'string', array('length' => 32));
$users->addUniqueIndex(array('username'));
$users->addColumn('password', 'string', array('length' => 255));
}
と私は例外次取得ユーザテーブルにレコードを挿入しよう -
3/3 AbstractSQLiteDriver.php 58行目のTableNotFoundException: 'SELECT * FROM users WHERE id =?'の実行中に例外が発生しました。 paramsは[0]:
SQLSTATE [HY000]:一般的なエラー:1このようなテーブル:ユーザ
2/3 PDOException PDOConnection.phpライン79:SQLSTATE [HY000]:一般的なエラー:1ないように表:ユーザー
1/3 PDOConnection.php線77にPDOException:SQLSTATE [HY000]:一般的なエラー:1このようなテーブル:ユーザ
Iはコードの上記部分が実行されていることを確認しました。資格情報がわからないときにデータベースに新しいテーブルを作成する方法を教えてください。
データベースへの書き込みアクセス権がない可能性があります。
ありがとうございます。
Pありがとうございます。 –
答えがあれば受け入れることができます;) –