【发布时间】:2020-10-19 16:56:48
【问题描述】:
我尝试检查一个表是否已经存在,如果不存在,它应该创建它并将给定的数据插入到表中,但如果它已经存在,它应该直接插入数据。但我只是得到一个普通的页面。 pg_error();没有输出任何东西。有人可以帮忙吗?.. 下面是代码;
<?php
$pra = "SELECT * FROM people";
$decks = pg_query($connection, $pra);
if(!$decks){
$sql = "CREATE TABLE people(
mom INT PRIMARY KEY NOT NULL,
non TEXT NOT NULL,
ooo INT NOT NULL,
ppp INT NOT NULL,
aqqq TEXT,
pq TEXT
)";
$ins = " INSERT INTO people (mom, non, ooo, ppp, aqqq, pq)
VALUES(
'$mom', '$non', '$ooo’, '$ppp’, '$aqqq', '$pq')";
$rcon =pg_query($connection, $ins);
if(!$rcon){
pg_last_error($connection);
}else{
echo "Record added to database"; //success
confirmation
}
}
?>
这里的表是如何创建的,因为我可以通过终端在数据库中看到它。但除此之外,一切都是空白,没有错误消息。
【问题讨论】:
-
你没有对
pg_last_error做任何事情——它返回一个字符串,但你没有将它分配给任何东西。您的查询在$ppp之后也缺少单引号,这就是插入本身不起作用的原因。 (我假设所有查询变量实际上都是在其他地方定义的) -
您知道您实际上并没有在 if 分支中执行任何数据库查询,对吧?您所做的只是将一些文本分配给变量。
-
如果你想在任何情况下执行这个插入,无论是在已经存在的表中,还是你刚刚在 if 分支中创建(/试图创建)的表中 - 那么为什么插入在里面一个elseif(一般来说是else),首先?
-
'$ooo, '$ppp, -
@iainn 哦,对不起,这是一个错误,但在原始代码中......它们已关闭。
标签: php postgresql insert create-table not-exists