我正在使用heroku部署我的postgresql数据库项目。我使用php、html5和css创建的站点在带有phpmyadmin和等效mysql数据库的localhost上运行良好。但是,当我将它转移到heroku时,只有select查询起作用(插入、更新和删除都不好)。
从localhost到heroku站点的唯一变化是在my.env和文件中创建我粘贴在下面的php数据对象。有人能告诉我下一步该去哪里解决这个问题吗?heroku错误日志不显示任何错误。我在用pgadmin4做postgres数据库。
.env文件 DATABASE_URL="pgsql://postgres:mypassword@localhost:5432/dbname"
其他文件
require __DIR__ . '/vendor/autoload.php';
$dbopts = parse_url(getenv('DATABASE_URL'));
$dbopts["path"] = ltrim($dbopts["path"], "/");
$db = new PDO("pgsql:" . sprintf(
"host=%s;port=%s;user=%s;password=%s;dbname=%s",
$dbopts["host"],
$dbopts["port"],
$dbopts["user"],
$dbopts["pass"],
ltrim($dbopts["path"], "/")
));
1条答案
按热度按时间wa7juj8i1#
问题解决方案:
phpmyadmin只支持mysql,而我使用了heroku的免费postgres插件。从phpmyadmin本地迁移到heroku显示了两种语言在语法上的细微差异。
我的特殊错误与mysql属性中的大写字母在postgres中被还原为所有小写字母有关。我的一个函数中的示例:
mysql版本:
postgres版本:
如果不是uni项目,我会使用phppgadmin而不是phpmyadmin来避免迁移差异。谢谢克里斯和哈弗!