我在使用Postgresql查询时遇到问题

时间:2018-12-04 13:49:10

标签: postgresql

我在mysql中有一个查询很好用,但是当我去postgresql不能更新我时,我想知道我的错误在哪里。

我离开我的php文件,查询 update 不起作用

<?php
 require_once "Controllers/conexion.php";
 session_start();

    $resultado=pg_query("SELECT nextval('user_id_seq') as key");
    $row=pg_fetch_array($resultado, 0);
    $key=$row['key'];
  try {
$resultado = pg_query($conexion,"select * from encuesta_respuesta where id_user = '".$_SESSION['user']."' and id_encuesta = '".$_POST['id_encuesta']."'");


while( $row = pg_fetch_assoc($resultado)){
    $data = $row;
} 


if ($data['estado']=='F') {
    header("Location: Inicio.php");
}



foreach($_POST['pregunta'] as $id_pregunta=>$valor){
    $query="insert into encuesta_respuesta_opcion values (".$key.",".$_POST['id_encuesta'].",".$id_pregunta.",".$valor.")";
    $resultado = pg_query($conexion,$query);
}


$query="update encuesta_respuesta set estado='F' where id_user=".$_SESSION['user']." and id_encuesta = ".$_POST['id_encuesta']; 
$resultado = pg_query($conexion,$query);    

$resp['error']=false;
 } catch (Exception $e) {
$resp['error']=true;
 }

 header("Location: Inicio.php");
 ?>

2 个答案:

答案 0 :(得分:0)

直接尝试update数据库中的数据,检查此查询是否有效。如果可行,则必须在应用程序中更改查询构建过程。例如:

 postgres=# create table test (id_user VARCHAR (50) PRIMARY KEY, id_encuesta VARCHAR (50), estado VARCHAR (10));
 postgres=# insert into test values ('anower','engg.','A');
 postgres=# update test set estado='F' where id_user='anower' and id_encuesta='engg.';

答案 1 :(得分:0)

该查询在MySql和postgres中应该相同。

如果在更新过程中获得不同的结果,则您的调查表也将相同。

最喜欢的id_userid_encuesta是自动递增字段。因此,它们不必具有相同的值。

尝试使用“选择”来查看他们是否具有相同的调查信息。

 SELECT *
 FROM survey 
 where id_user=".$_SESSION['user']." 
   and id_encuesta = ".$_POST['id_encuesta'];