У меня проблемы с моим запросом postgresql - PullRequest
0 голосов
/ 04 декабря 2018

У меня запрос в 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 голосов
/ 04 декабря 2018

Запрос должен работать одинаково в MySql и postgres.

Если во время обновлений вы получаете разные результаты, таблицы опросов не совпадают.

Наиболее понравившиеся id_user и id_encuesta - это поля автоинкремента.Поэтому они не обязательно имеют одинаковые значения.

Попробуйте использовать Select, чтобы увидеть, имеют ли они одинаковую информацию об опросе.

 SELECT *
 FROM survey 
 where id_user=".$_SESSION['user']." 
   and id_encuesta = ".$_POST['id_encuesta']; 
0 голосов
/ 04 декабря 2018

Непосредственно попробуйте 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.';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...