【发布时间】:2012-12-17 21:41:24
【问题描述】:
我最近创建了一个 postgresql 数据库,但由于某种原因我无法在其中创建表。我是否可以从 php 脚本或终端创建它,我很好;但我搜索了很多地方,找不到任何有用的东西。我之前在 mysql 中做过很多工作,但 postgresql 恰好给我带来了问题。
我知道我的 php 文件已正确连接到我的数据库,并且我已经运行了该脚本的多个版本,例如(在 pg_connect 之后插入):
$tsk1 = pg_query("
CREATE TABLE IF NOT EXISTS `elb` (
`id` int(8) NOT NULL AUTO_INCREMENT,
`user` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
`pass` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
`name` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`_id`),
UNIQUE KEY `_user` (`_user`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3");
我也试过了
$tsk1 = pg_query("
CREATE TABLE IF NOT EXISTS 'elb' (
'id' int(8),
'user' varchar(128),
'pass' varchar(128),
'name' varchar(128),
");
我也试过了,但收到 500 错误。而且我知道我已连接,因为我尝试仅更改密码中的一个字符并返回“无法连接”。
<?php
$dbconn = pg_connect("host=hostname port=portnum dbname=mydb user=myuser password=mypass sslmode=require options='--client_encoding=UTF8'") or die('Could not connect: ' . pg_last_error());
$sql = pg_query('CREATE TABLE "elb" (
"id" int(8),
"user" varchar(128),
"pass" varchar(128),
"name" varchar(128)
)');
?>
【问题讨论】:
-
我尝试在我的数据库中添加一个表;但由于某种原因,当我运行脚本时,它运行成功,但仍然没有制作表格。
-
这是 pg 版本 9.2.1
-
为什么需要使用引号?您所有的表名和列名都是合理的,不需要它们。
-
我试过有没有,所以我只是想我会发布那些;我已经为此代码尝试了 10 多种不同的格式,但都没有奏效。所以我不确定是什么导致它不起作用。
-
当您说未创建表时,这是什么意思。您是否从 elb 中选择 *?您在什么架构中创建它?检查上下文。
标签: php sql postgresql heroku