2011-07-08 50 views
1

我想用数组元素更新Postgres数据库表,但我不知道如何。使用数组元素更新Postgres表

我试过,但我得到这个通知:注意:未定义指数:上线的“文件”“值” X

更新:

private function debug ($function_name, $arg_names, $arg_vals (<=with func_get_args()) ) 
{ 
    $arg_names_array = explode(',', $arg_names); 
    foreach($arg_names_array as $k => $v) 
    { 
     $v = trim($v); 
     $v = pg_escape_string($v); 
     $vars[$k] = $arg_vals[$v]; 
    } 
    $this->return_ = $vars; 
    return $this->return_; 
} 
pg_query($connect, "UPDATE tabe SET row = {$vars[$first]} WHERE code = {$vars[$code]} "); 
pg_query($connect, "UPDATE tabe SET row = '{$vars[$first]}' WHERE code = '{$vars[$code]}' "); 

回答

0

我需要更多的上下文信息是能够帮助你。我知道你想更新一个包含一组值的字段。请记住,在postgresql中,数组语法是{value1,value2,...,valueN},如果它是一个字符串,那么值将被包含在撇号中。

那么$ vars [$ first]包含什么?如果它是一个php数组,你必须首先将它转换为适用于sql命令的情况下的字符串。

+0

对不起,真正的问题是这样的:$ var [] = $ this-> return_。所以,正确的方法是$ var = $ this-> return_。 – Smith

+0

正确的查询:“UPDATE tabe SET row ='{$ vars ['$ first']}'WHERE code ='{$ vars ['$ code']}'”; – Smith