我无法使用postgres + php插入数据

时间:2014-07-04 23:18:37

标签: php sql postgresql

我正在使用php + postgres尝试制作网络应用。我的问题是当我尝试在表格中插入数据时,因为它不会死掉#34;但也不会插入任何内容。

这是我的观点,一切正常。

<form action="../../Controlador/agregarAlumno.php" method="post">
    <label for="nombre">Nombre:</label>
        <input id="nombre" type="text" name="nombre" placeholder="Nombre Coordinador" required="true" />
    <label for="email">Rol:</label>
        <input id="email" type="text" name="rol" placeholder="Rol USM" required="true" />
    <label for="nombre">Rut:</label>
        <input id="nombre" type="text" name="rut" placeholder="Rut" required="true" />
    <label for="email">Área:</label>
    <select name="area">
    <option value="">Elige un área</option>
    <?php 

        foreach($areas as $area) 
        { 
           echo '<option value="'. $area[0] .'">'. $area[1] .'</option>';
        }
    ?>
    </select>

    <label for="nombre">Teléfono:</label>
        <input id="nombre" type="text" name="telefono" placeholder="Ej: +56988182965" required="true" />
    <label for="email">Talla Polera:</label>
        <input id="email" type="text" name="talla" placeholder="Ej: S, M, L" required="" />
    <label for="nombre">Carrera:</label>
    <select name="carrera">
    <option value="">Elige una carrera</option>
    <?php 

        foreach($carreras as $carrera) 
        { 
           echo '<option value="'. $carrera[0] .'">'. $carrera[2] .'</option>';
        }
    ?>
    </select>

    <label for="email">Correo Electrónico</label>
        <input id="email" type="mail" name="correo" placeholder="Ejemplo@ejemplo.com" required="true" />
    <label for="email">Contraseña</label>
        <input id="email" type="text" name="contraseña" required="true" />


    <input id="submit" type="submit" name="submit" value="Enviar" />
</form>

这是agregarAlumno.php,这里的想法是插入一个用户,然后使其成为协调员,简单来说,我试图用一个视图进行2次插入。

<?php

include("conexion.php");
include("../Modelo/alumno.php");
include("../Modelo/area.php");
include("../Modelo/coordinadoresArea.php"); 

$al = new alumno();

$alumnos = $al->obtenerAlumnos();
foreach ($alumnos as $alumno)
{
    if($_POST[rol] != $alumno[0] )
    {
        $al->agregarAlumno($_POST[nombre],$_POST[rol],$_POST[rut],$_POST[telefono],$_POST[talla],$_POST[carrera],$_POST[correo],$_POST[contraseña]);
    }

} 
$cor = new coordinadoresArea();
$cor->agregarCoordinadorArea($_POST[rol],$_POST[area]);
//header("Location: ../Vista/Coordinadores Area/coordinadoresArea.php"); 
?>

这是函数agregarAlumno:

function agregarAlumno($nombre,$rol,$rut,$telefono,$talla,$id_carrera,$correo,$contraseña)
  {
include("conexion.php");
$query = "INSERT INTO alumno VALUES('".$rol."','".$id_carrera."','".$nombre."','".$rut."','".$correo."','".$contraseña."','".$telefono."','".$talla."')";
return $result = pg_query($query);

pg_free_result($result);

pg_close($db);
  }

这是函数agregarCoordinador:

function agregarCoordinadorArea($rol,$id_area)
  {
include("conexion.php");
echo "Rol:",$rol," ","Id Area:",$id_area;
$query = "INSERT INTO coordinador_area VALUES('".$rol."','".$id_area."')";
$result = pg_query($query);

pg_free_result($result);

// Closing connection
pg_close($db);
  }

最后这是表coordinador_area:

CREATE TABLE coordinador_area
(
  id_coordinador_area serial NOT NULL,
  rol character varying(20) NOT NULL,
  id_area integer NOT NULL,
  CONSTRAINT coordinador_area_pkey PRIMARY KEY (id_coordinador_area),
  CONSTRAINT coordinador_area_id_area_fkey FOREIGN KEY (id_area)
      REFERENCES area (id_area) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT coordinador_area_rol_fkey FOREIGN KEY (rol)
      REFERENCES alumno (rol) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)

对不起,如果我提出一个很长的问题,但我已经尝试过所有事情(我知道)。

1 个答案:

答案 0 :(得分:0)

您的所有POST参数都必须使用单引号,例如:$_POST['nombre'],我看到您有$_POST[nombre]

另一个问题是变量或参数名称不得包含ñ

等无效字符
$al->agregarAlumno($_POST['nombre'],$_POST['rol'],$_POST['rut'],$_POST['telefono'],$_POST['talla'],$_POST['carrera'],$_POST['correo'],$_POST['contrasenia']);

希望它适合你:)