首页 > 解决方案 > 一个 PDO 函数用于任何查询

问题描述

我正在寻找创建一个 php 函数来进行 SQL 查询。我将提供 sql 查询(插入、更新、删除、选择、替换)和任何占位符,然后它将返回一个数组,其中包含详细说明问题的值或错误。

这是我到目前为止所拥有的,它工作正常,但我想知道是否有办法让它变得更好,或者我是否有任何我看不到自己的错误。

 $pdo = new PDO($dsn, $user, $passwd);
 $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

function sql_query($query, $placeholders = false){
  $data = array();
  global $pdo;
  $letter = substr($query, 0, 1);

  try{
    $stmt = $pdo->prepare($query);
    //echo "Successfully Prepared<br/>";
  }
  catch(PDOException $e){
    $data['error'] = "Prepare Failed: ".$e->getMessage();
    return $data;
  }

  if(!$stmt){
    $data['error'] = "Query Failed";
    return $data;
  }

  try{
    if($placeholders){
    $stmt->execute($placeholders);
  }
  else{
    $stmt->execute();
  }

  $data['count'] = $stmt->rowCount();

  if($letter === "S"){
  if($data['count'] > 1){
    $data['result'] = $stmt->fetchAll();
  }else{
    $data['result'][] = $stmt->fetch();
  }
 }    
}
catch(PDOException $e){
 $data['error'] = 'Connection failed: ' . $e->getMessage();
}  
return $data;
}

标签: phppdo

解决方案


推荐阅读