Проблемы с готовыми консультациями postgresql?

Я делаю консультацию он готовит для того, чтобы предотвращать вставку sql, но я не функционировала страница, которая была бы должна показывать результат, дай ошибку и я думаю, что он состоит потому что функции в том, что я использую звук mysqli, и работаю с postgresql, я не уверен, функционируют ли эти они служат с постглинистым песчаником и поэтому ошибки, того, чтобы быть таким: как были бы сделаны консультации, приготовленные с постглинистым песчаником?

$busqueda = $_GET['resultado'];

$query = "select * from datos where nombre = ?";

$resultado = pg_prepare($conexion, $query);

$consulta = pg_stmt_bind_param($resultado, "s", $busqueda);
$consulta = pg_stmt_execute($resultado);

if($consulta == false){

    echo "Error en consulta";
}else{

    $consulta = pg_stmt_bind_result($resultado, $nombre, $apellido, $telefono);

    while(pg_stmt_fetch($resultado)){

        echo $nombre . " " . $apellido . " " . $telefono;
    }

    pg_stmt_close($resultado);
}
1
задан 04.08.2017, 15:51
1 ответ

Documentaci¦n относительно Postgresql немного бедный и рассеивает. AdemÃ: s, готовые консультации функционируют немного различно. Если только ты не выбирал PDO, что не ser¦ - в плохую идею, так как кроме pequeños изменения относительно conexi¦n, призыва к ним métodos консультации, готовить консультации, получать результаты, и т.д. неизменный.

В этом ответе меня отнеслось как к к соединять c¦digo, который функционировал бы для твоего случая.

Я Высказываю какие-то мнения в c¦digo.

Надеялся, что он подает тебя.

<?php

/* Conectar: actualizar con datos reales */

$conn_string = "host=tu-host port=5432 dbname=nombrebd user=usuario password=clave";
$conn = pg_connect($conn_string);

/* Verificar si la conexión tuvo éxito */

if (!$conn) 
{

  echo "Hubo un error!\n";

}else{

    /* Con postgresql se usa $1, $2 ... en lugar de ? o marcadores de :nombre */

    $sql="SELECT nombre, apellido FROM datos WHERE nombre = $1";
    $busqueda="Valor a buscar";

    /* Preparar la consulta */

    $result = pg_prepare($conn, "my_query", $sql);

    /* Ejecutar la consulta */

    $result = pg_execute($conn, "my_query", array($busqueda));

    /* Verificar si no hubo resultados */

    if (!$result) {

        echo "No se encontraron datos o la consulta no tuvo éxito.\n";

    }else{

        /* Una posibilidad: Leer resultados por filas*/

        while ($row = pg_fetch_row($result)) 
        {
            echo "Nombre: ".$row[0] . "Apellido: ". $row[1]."<br>";
        }

        /* Otra posibilidad: Leer resultados como un arreglo*/

        while ($row = pg_fetch_array($result)) 
        { 
            echo "Nombre: ".$row["nombre"] . "Apellido: ". $row["apellido"]."<br>";
        } 

    } 

/* Cerrar conexión */

pg_close($conn);

}   

?>
2
ответ дан 29.10.2019, 23:58
  • 1
    Большое спасибо друг, несмотря на то, что касательно это приносит в pdo ¿ серьезная используя те же функции?, нужно отмечать что я изучаю все еще и поэтому эти сомнения, которые могут быть немного очевидными. – Edwin Aquino 05.08.2017, 07:43
  • 2
    Я радуюсь, что он подал тебя @EdwinAquino. Если ты решаешься из-за PDO ú nico, что cambiarí в serí в способ создавать объект conexió n, как объясни Учебник . Потом, готовить консультации, выполнять их и читать результат serí в, равно как если ты использовал MySQL, SQL Server, Oracle или любой другой. Это одно из преимуществ PDO. Так что, если у тебя есть aplicació n в MySQL и bd он меняется в другой драйвер, ты не должен менять весь có я говорю, а только có я говорю о классе, что создает conexió n. – A. Cedano 05.08.2017, 08:40