postgres通过php更新

时间:2009-09-30 20:30:07

标签: php postgresql

我是php和postgres的完全新手。我一直在网上寻找答案,但没有快乐!我有一个名为workorders的postgres表。它有一个主键(ident)。我正在尝试使用PHP脚本/程序来更新它。基本上,ident是工单号。我写了一个php脚本,我在其中输入工单号,将其发布到另一个连接到数据库的php文件,找到匹配的ident,并通过将'paid'添加到名为paid的列来更新它。我使用INSERT使其工作,但它不允许重复键,这就是我尝试使用更新的原因。当我这样做时,它会显示“意外的T_CONSTANT_ENCAPSED_STRING”

非常感谢帮助。

<?php
include('adodb5/adodb.inc.php');

$DB = &ADONewConnection('postgres');
$DB->PConnect('host=localhost port=5432 dbname=test user=postgres password=secret');

if (!$DB) {
  die("Error in connection: " . pg_last_error());
}

$arr = array( array('paid',$_POST['$invoice']), );
$ok = $DB->Execute('insert into workorders (paid, ident) values (?,?)',$arr);

if (!$ok) {
  die("Invoice not posted. " . pg_last_error ());
}

?>

如果我使用它,我可以插入我的数据库。如果我用UPDATE或pg_update替换INSERT,我会收到错误。

1 个答案:

答案 0 :(得分:0)

现在看到你的代码,看起来很好。

T_CONSTANT_ENCAPSED_STRING通常是在字符串中使用时不转义引号的结果。但我在这里没有看到。你能发布不起作用的例子吗?

include('adodb5/adodb.inc.php');

$DB = &ADONewConnection('postgres');
$DB->PConnect('host=localhost port=5432 dbname=test user=postgres password=secret');
if (!$DB) {
    die("Error in connection: " . pg_last_error());
}

$arr = array( array('paid',$_POST['$invoice']), );
$ok = $DB->Execute('insert into workorders (paid, ident) values (?,?)',$arr);
if (!$ok) {
    die("Invoice not posted. " . pg_last_error ());
}