Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 执行准备语句时检查postgresql是否存在_Php_Postgresql - Fatal编程技术网

Php 执行准备语句时检查postgresql是否存在

Php 执行准备语句时检查postgresql是否存在,php,postgresql,Php,Postgresql,我正在准备一些语句,希望在更新之前检查行是否存在。如果它存在,则更新它,如果它不存在,则输出消息“没有这样的动物”。我有更新位工作,但不确定如何检查行是否存在。请帮忙 $v = array(); $v[] = $_POST['status']; $v[] = $_POST['id']; $dbh = dbh_get(); $sql = 'UPDATE tap SET status=? WHERE id =?'; $stmt = $dbh->prepare($sql); $st

我正在准备一些语句,希望在更新之前检查行是否存在。如果它存在,则更新它,如果它不存在,则输出消息“没有这样的动物”。我有更新位工作,但不确定如何检查行是否存在。请帮忙

$v = array();
$v[] = $_POST['status'];
$v[] = $_POST['id'];

$dbh = dbh_get();

$sql = 'UPDATE tap SET status=?
    WHERE id =?';

$stmt = $dbh->prepare($sql);
$stmt->execute($v);

\\ if row isn't there display message "No such animal"

\\ otherwise print the below

printf("Status was changed to - %s", $v[0]);

\\then either way have my continue button for me to click on

print '<div class="button" style="float:left;" onclick="window.location.href=\'admin.php\';">Admin</div>' . "\n";

dbh_free($dbh)
$v=array();
$v[]=$_POST['status'];
$v[]=$_POST['id'];
$dbh=dbh_get();
$sql='更新抽头集状态=?
其中id=?';
$stmt=$dbh->prepare($sql);
$stmt->execute($v);
\\如果行不存在,则显示消息“无此类动物”
\\否则,请打印以下内容
printf(“状态更改为-%s”,$v[0]);
\\然后,无论哪种方式,我都可以单击“继续”按钮
打印“Admin”。“\n”;
免费胸径($dbh)

根据您的问题,您希望在执行更新之前检查该行是否存在。你可以试试这个-

 $id_exist = 0;
 $sql = "SELECT id
         FROM tap" ;

$sql_prepare = $dbh->prepare($sql);
$sql_prepare->execute();
while($row = $sql_prepare->fetchObject()) {
   if($_POST['id'] == $row->id) {
      $id_exist = 1;
    } 

}
if($id_exist == 1) {
// perform update here
} else {
  echo 'No such animal';
 }

不,现在语句不起作用了“try”的作用是什么?我想我也需要在语句顶部使用PDO来做些什么?try用于检查一段代码是否有异常。如果语句抛出任何异常,则catch块可以捕获它。在您的情况下,如果update语句未能更新,那么它应该进入catch块并打印“update failed”以及异常。好的,我查找了它,这是有意义的,如果id不存在,我真的希望它给我一个错误。像“没有这样的客户注册”这样简单的问题,我可能会改写这个问题。因为可能是我的声明没有检查它是否存在。解决了我的问题,感谢您的帮助