Обсуждение: Update script
Hi
I have a script to update some records in a postgresql
database. when i do modify what i have to modify it
give me the warning:
Warning: pg_query() query failed: ERROR: pg_atoi:
zero-length string in
/var/www/html/adm/modificar_2.php on line 24
ERROR
this is line 24:
$result = pg_query($db, $query);
this is modificar_2.php :
<?php
$id = $_POST['id'];
$titulo = $_POST['titulo'];
$texto = $_POST['texto'];
include 'db.php';
$query = "UPDATE table SET titulo='$titulo',
texto='$texto' WHERE id='$id'";
$result = pg_query($db, $query);
if (!$result) {printf ("ERROR"); exit;}
print ("Estes valores foram atualizados:<P> -
$titulo<BR>- $texto<BR>");
pg_close($db);
?>
This is a snip from modificar_1.php
<?php
$id = $_POST['id'];
$titulo = $_POST['titulo'];
$texto = $_POST['texto'];
include 'db.php';
$query = "SELECT id, titulo, texto FROM table WHERE
id='$id'";
$result = pg_exec($db, $query);
if (!$result) {printf ("ERROR"); exit;}
$numrows = pg_numrows($result);
$row=0;
?>
<table border=0 style="border: 1px solid black;">
<?php
do {
$myrow = pg_fetch_row ($result, $row);
//print_r($myrow);
print ("<tr><td>ID</td><td>$myrow[0]</td></tr>");
print ("<tr><td>Título</td><td><input type=text
value=$myrow[1] name=titulo size=150
maxlength=150></td></tr>");
print ("<tr><td>Texto</td><td><textarea cols=90
rows=20 value=$myrow[2]
name=texto>$myrow[2]</textarea></td></tr>");
$row++;
}
while ($row < $numrows);
?>
Thanks in advance
=====
Ângelo Marcos Rigo
AMR Informática
(51) 3348 0870
Rua Pe. Alois Kades 400/210
Porto Alegre /RS/Brasil
http://amr.freezope.org
angelo_rigo@yahoo.com.br
_______________________________________________________________________
Conheça o novo Cadê? - Mais rápido, mais fácil e mais preciso.
Toda a web, 42 milhões de páginas brasileiras e nova busca por imagens!
http://www.cade.com.br
----- Original Message -----
From: "Ângelo Marcos Rigo" <angelo_rigo@yahoo.com.br>
To: <pgsql-php@postgresql.org>
Sent: Thursday, August 14, 2003 4:46 PM
Subject: [PHP] Update script
> Hi
>
> I have a script to update some records in a postgresql
> database. when i do modify what i have to modify it
> give me the warning:
>
> Warning: pg_query() query failed: ERROR: pg_atoi:
> zero-length string in
> /var/www/html/adm/modificar_2.php on line 24
> ERROR
>
> this is line 24:
> $result = pg_query($db, $query);
>
> this is modificar_2.php :
>
> <?php
> $id = $_POST['id'];
Since this is the only thing that match an integer value, try to use
$id = $_POST['id'] + 0;
in case there is no id sent. You'll don't get any results [i hope there is
no id==0] but u'll don't have an error on your query.
Because id is integer try not to use *where id='$id'*. Use *where id=$id*
instead.
> $titulo = $_POST['titulo'];
> $texto = $_POST['texto'];
>
> include 'db.php';
> $query = "UPDATE table SET titulo='$titulo',
> texto='$texto' WHERE id='$id'";
> $result = pg_query($db, $query);
> if (!$result) {printf ("ERROR"); exit;}
> print ("Estes valores foram atualizados:<P> -
> $titulo<BR>- $texto<BR>");
> pg_close($db);
> ?>
>
> This is a snip from modificar_1.php
>
> <?php
> $id = $_POST['id'];
> $titulo = $_POST['titulo'];
> $texto = $_POST['texto'];
>
> include 'db.php';
> $query = "SELECT id, titulo, texto FROM table WHERE
> id='$id'";
> $result = pg_exec($db, $query);
> if (!$result) {printf ("ERROR"); exit;}
> $numrows = pg_numrows($result);
> $row=0;
> ?>
> <table border=0 style="border: 1px solid black;">
> <?php
> do {
> $myrow = pg_fetch_row ($result, $row);
> //print_r($myrow);
> print ("<tr><td>ID</td><td>$myrow[0]</td></tr>");
> print ("<tr><td>Título</td><td><input type=text
> value=$myrow[1] name=titulo size=150
> maxlength=150></td></tr>");
> print ("<tr><td>Texto</td><td><textarea cols=90
> rows=20 value=$myrow[2]
> name=texto>$myrow[2]</textarea></td></tr>");
> $row++;
> }
> while ($row < $numrows);
> ?>
>
> Thanks in advance
>
>
> =====
> Ângelo Marcos Rigo
> AMR Informática
> (51) 3348 0870
> Rua Pe. Alois Kades 400/210
> Porto Alegre /RS/Brasil
> http://amr.freezope.org
> angelo_rigo@yahoo.com.br
>
>
>
> _______________________________________________________________________
> Conheça o novo Cadê? - Mais rápido, mais fácil e mais preciso.
> Toda a web, 42 milhões de páginas brasileiras e nova busca por imagens!
> http://www.cade.com.br
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
It work in half :
I get the message that the values where updated but
the values are not really updated
>
> > Hi
> >
> > I have a script to update some records in a
> postgresql
> > database. when i do modify what i have to modify
> it
> > give me the warning:
> >
> > Warning: pg_query() query failed: ERROR: pg_atoi:
> > zero-length string in
> > /var/www/html/adm/modificar_2.php on line 24
> > ERROR
> >
> > this is line 24:
> > $result = pg_query($db, $query);
> >
> > this is modificar_2.php :
> >
> > <?php
> > $id = $_POST['id'];
>
> Since this is the only thing that match an integer
> value, try to use
> $id = $_POST['id'] + 0;
> in case there is no id sent. You'll don't get any
> results [i hope there is
> no id==0] but u'll don't have an error on your
> query.
> Because id is integer try not to use *where
> id='$id'*. Use *where id=$id*
> instead.
>
> > $titulo = $_POST['titulo'];
> > $texto = $_POST['texto'];
> >
> > include 'db.php';
> > $query = "UPDATE table SET titulo='$titulo',
> > texto='$texto' WHERE id='$id'";
> > $result = pg_query($db, $query);
> > if (!$result) {printf ("ERROR"); exit;}
> > print ("Estes valores foram atualizados:<P> -
> > $titulo<BR>- $texto<BR>");
> > pg_close($db);
> > ?>
> >
> > This is a snip from modificar_1.php
> >
> > <?php
> > $id = $_POST['id'];
> > $titulo = $_POST['titulo'];
> > $texto = $_POST['texto'];
> >
> > include 'db.php';
> > $query = "SELECT id, titulo, texto FROM table
> WHERE
> > id='$id'";
> > $result = pg_exec($db, $query);
> > if (!$result) {printf ("ERROR"); exit;}
> > $numrows = pg_numrows($result);
> > $row=0;
> > ?>
> > <table border=0 style="border: 1px solid black;">
> > <?php
> > do {
> > $myrow = pg_fetch_row ($result, $row);
> > //print_r($myrow);
> > print ("<tr><td>ID</td><td>$myrow[0]</td></tr>");
> > print ("<tr><td>Título</td><td><input type=text
> > value=$myrow[1] name=titulo size=150
> > maxlength=150></td></tr>");
> > print ("<tr><td>Texto</td><td><textarea cols=90
> > rows=20 value=$myrow[2]
> > name=texto>$myrow[2]</textarea></td></tr>");
> > $row++;
> > }
> > while ($row < $numrows);
> > ?>
> >
> > Thanks in advance
> >
> >
> > =====
> > Ângelo Marcos Rigo
> > AMR Informática
> > (51) 3348 0870
> > Rua Pe. Alois Kades 400/210
> > Porto Alegre /RS/Brasil
> > http://amr.freezope.org
> > angelo_rigo@yahoo.com.br
> >
> >
> >
> >
>
_______________________________________________________________________
> > Conheça o novo Cadê? - Mais rápido, mais fácil e
> mais preciso.
> > Toda a web, 42 milhões de páginas brasileiras e
> nova busca por imagens!
> > http://www.cade.com.br
> >
> > ---------------------------(end of
> broadcast)---------------------------
> > TIP 6: Have you searched our list archives?
> >
> > http://archives.postgresql.org
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 2: you can get off all lists at once with the
> unregister command
> (send "unregister YourEmailAddressHere" to
majordomo@postgresql.org)
=====
Ângelo Marcos Rigo
AMR Informática
(51) 3348 0870
Rua Pe. Alois Kades 400/210
Porto Alegre /RS/Brasil
http://amr.freezope.org
angelo_rigo@yahoo.com.br
_______________________________________________________________________
Conheça o novo Cadê? - Mais rápido, mais fácil e mais preciso.
Toda a web, 42 milhões de páginas brasileiras e nova busca por imagens!
http://www.cade.com.br
Do:
print $query;
in your code to look at the query you send, atoi = ASCII to Integer.
It is failing to convert a null string into integer, your query is
malformed.
/B
----- Original Message -----
From: "Ângelo Marcos Rigo" <angelo_rigo@yahoo.com.br>
To: <pgsql-php@postgresql.org>
Sent: Thursday, August 14, 2003 06:46
Subject: [PHP] Update script
Hi
I have a script to update some records in a postgresql
database. when i do modify what i have to modify it
give me the warning:
Warning: pg_query() query failed: ERROR: pg_atoi:
zero-length string in
/var/www/html/adm/modificar_2.php on line 24
ERROR
this is line 24:
$result = pg_query($db, $query);
this is modificar_2.php :
<?php
$id = $_POST['id'];
$titulo = $_POST['titulo'];
$texto = $_POST['texto'];
include 'db.php';
$query = "UPDATE table SET titulo='$titulo',
texto='$texto' WHERE id='$id'";
$result = pg_query($db, $query);
if (!$result) {printf ("ERROR"); exit;}
print ("Estes valores foram atualizados:<P> -
$titulo<BR>- $texto<BR>");
pg_close($db);
?>
This is a snip from modificar_1.php
<?php
$id = $_POST['id'];
$titulo = $_POST['titulo'];
$texto = $_POST['texto'];
include 'db.php';
$query = "SELECT id, titulo, texto FROM table WHERE
id='$id'";
$result = pg_exec($db, $query);
if (!$result) {printf ("ERROR"); exit;}
$numrows = pg_numrows($result);
$row=0;
?>
<table border=0 style="border: 1px solid black;">
<?php
do {
$myrow = pg_fetch_row ($result, $row);
//print_r($myrow);
print ("<tr><td>ID</td><td>$myrow[0]</td></tr>");
print ("<tr><td>Título</td><td><input type=text
value=$myrow[1] name=titulo size=150
maxlength=150></td></tr>");
print ("<tr><td>Texto</td><td><textarea cols=90
rows=20 value=$myrow[2]
name=texto>$myrow[2]</textarea></td></tr>");
$row++;
}
while ($row < $numrows);
?>
Thanks in advance
=====
Ângelo Marcos Rigo
AMR Informática
(51) 3348 0870
Rua Pe. Alois Kades 400/210
Porto Alegre /RS/Brasil
http://amr.freezope.org
angelo_rigo@yahoo.com.br
_______________________________________________________________________
Conheça o novo Cadê? - Mais rápido, mais fácil e mais preciso.
Toda a web, 42 milhões de páginas brasileiras e nova busca por imagens!
http://www.cade.com.br
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
http://archives.postgresql.org
Hi, Ângelo Marcos Rigo wrote, On 8/14/2003 3:46 PM: > Hi > > I have a script to update some records in a postgresql > database. when i do modify what i have to modify it > give me the warning: > > Warning: pg_query() query failed: ERROR: pg_atoi: > zero-length string in > /var/www/html/adm/modificar_2.php on line 24 > ERROR > > this is line 24: > $result = pg_query($db, $query); > > this is modificar_2.php : > > <?php > $id = $_POST['id']; > $titulo = $_POST['titulo']; > $texto = $_POST['texto']; > > include 'db.php'; > $query = "UPDATE table SET titulo='$titulo', > texto='$texto' WHERE id='$id'"; print $query; You will get: UPDATE table SET titulo='somthing',texto='text' WHERE id='' And your pg version is >= 7.2, where you can not insert '' string in integer type. cast $id as integer, '".($id+0)."' or intval or others. C.
Hi Col Thank´s for the postgre version note my problem was that i just forget the name=id atribute in the textfield Best regards --- CoL <col@mportal.hu> escreveu: > Hi, > > > Ângelo Marcos Rigo wrote, On 8/14/2003 3:46 PM: > > Hi > > > > I have a script to update some records in a > postgresql > > database. when i do modify what i have to modify > it > > give me the warning: > > > > Warning: pg_query() query failed: ERROR: pg_atoi: > > zero-length string in > > /var/www/html/adm/modificar_2.php on line 24 > > ERROR > > > > this is line 24: > > $result = pg_query($db, $query); > > > > this is modificar_2.php : > > > > <?php > > $id = $_POST['id']; > > $titulo = $_POST['titulo']; > > $texto = $_POST['texto']; > > > > include 'db.php'; > > $query = "UPDATE table SET titulo='$titulo', > > texto='$texto' WHERE id='$id'"; > print $query; You will get: > UPDATE table SET titulo='somthing',texto='text' > WHERE id='' > > And your pg version is >= 7.2, where you can not > insert '' string in > integer type. cast $id as integer, '".($id+0)."' or > intval or others. > > C. > > > ---------------------------(end of > broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster ===== Ângelo Marcos Rigo AMR Informática (51) 3348 0870 Rua Pe. Alois Kades 400/210 Porto Alegre /RS/Brasil http://amr.freezope.org angelo_rigo@yahoo.com.br _______________________________________________________________________ Conheça o novo Cadê? - Mais rápido, mais fácil e mais preciso. Toda a web, 42 milhões de páginas brasileiras e nova busca por imagens! http://www.cade.com.br