Thread: 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