Postgres 不接受通过 php 构建的 select 查询
Postgres does not accept select query built through php
我有一个 JS 文件,多亏了 ajax,它让我可以在我的 POSTGRESQL 数据库上执行查询。
感谢 ajax 和 php,我已经执行了其他查询,但这是我第一次使用 POSTGRESQL。
php代码:
function deletepic($idpic,$nomefoto){
global $link;
$query1 = pg_query($link,"SELECT FROM foto WHERE idf=$idpic AND nome='$nomefoto';");
if(!$query1){
return;
} else {
unlink("img/photo/" . $nomefoto);
unlink("img/preview_photo/" . $nomefoto);
$query = pg_query($link,"DELETE FROM foto WHERE idf=$idpic;");
if (!$query) { //SE LA QUERY NON E ANDATA A BUON FINE
$return = 'Errore durante eliminazione';
} else {
$return = 'Immagine eliminata';
}
}
echo $return;
}
如果我评论第一个 ($query1
) 查询,则会执行另一个查询,但我也需要执行第一个查询。我已经检查过 "$nomefoto"
和数据库之间存在对应关系。如您所见,我将 ''
放在 $nomefoto
周围,但这只是我最后的努力。我已经尝试过不带引号、带双引号的字符串传递,也以这种方式传递:
"'".$nomefoto."'"
.
似乎没有任何效果。
在数据库中 "nome"
保存时没有任何引号。
我直接从 http://localhost/phppgadmin/ 执行查询,格式为:
SELECT * FROM foto WHERE idf=92 AND nome='4516Tulips.jpg';
名称用单引号 ('
) 括起来。它奏效了!
感谢您的帮助。
select
命令后必须跟一个在您的查询中不存在的值列表:
select 1
from foto
where idf=$idpic and nome='$nomefoto'
顺便说一句,不需要两个查询:
delete from foto
where idf=$idpic and nome='$nomefoto'
returning *
它将 return 删除行(如果有)或空结果集。
我有一个 JS 文件,多亏了 ajax,它让我可以在我的 POSTGRESQL 数据库上执行查询。
感谢 ajax 和 php,我已经执行了其他查询,但这是我第一次使用 POSTGRESQL。
php代码:
function deletepic($idpic,$nomefoto){
global $link;
$query1 = pg_query($link,"SELECT FROM foto WHERE idf=$idpic AND nome='$nomefoto';");
if(!$query1){
return;
} else {
unlink("img/photo/" . $nomefoto);
unlink("img/preview_photo/" . $nomefoto);
$query = pg_query($link,"DELETE FROM foto WHERE idf=$idpic;");
if (!$query) { //SE LA QUERY NON E ANDATA A BUON FINE
$return = 'Errore durante eliminazione';
} else {
$return = 'Immagine eliminata';
}
}
echo $return;
}
如果我评论第一个 ($query1
) 查询,则会执行另一个查询,但我也需要执行第一个查询。我已经检查过 "$nomefoto"
和数据库之间存在对应关系。如您所见,我将 ''
放在 $nomefoto
周围,但这只是我最后的努力。我已经尝试过不带引号、带双引号的字符串传递,也以这种方式传递:
"'".$nomefoto."'"
.
似乎没有任何效果。
在数据库中 "nome"
保存时没有任何引号。
我直接从 http://localhost/phppgadmin/ 执行查询,格式为:
SELECT * FROM foto WHERE idf=92 AND nome='4516Tulips.jpg';
名称用单引号 ('
) 括起来。它奏效了!
感谢您的帮助。
select
命令后必须跟一个在您的查询中不存在的值列表:
select 1
from foto
where idf=$idpic and nome='$nomefoto'
顺便说一句,不需要两个查询:
delete from foto
where idf=$idpic and nome='$nomefoto'
returning *
它将 return 删除行(如果有)或空结果集。