addslashesによるエスケープ処理は禁止

PEAR::DBであればDB::quote()という関数を利用

<?php
class db_access
{
  function set_dsn($dsn)
  {
    $this->dsn = $dsn;
  }
  var $dsn = null;

  var $_result = array();
  var $conid   = null;
  function do_connect()
  {
    require_once("DB.php");

    $this->conid = DB::connect($this->dsn);
    if ( DB::isError($this->conid) )
      {
        die ($this->conid->getMessage());
      }
  }

  var $debuginfo;
  function do_getall($sql)
  {
    $result = $this->conid->getAll($sql,DB_FETCHMODE_ASSOC);
    //DB_FETCHMODE_ASSOC,DB_FETCHMODE_ORDERED
    if (DB::isError($result))
      {
        $this->debuginfo = $result->getDebugInfo($result);
        $this->_result = null;
        return false;
      }
    else
      {
        $this->_result = $result;
        return true;
      }
  }


  function do_query($sql)
  {
    $result = $this->conid->query($sql);
    if (DB::isError( $result )) 
      {
        $this->debuginfo = $result->getDebugInfo($result);
        $this->_result = null;
        return false;
      }
    else
      {
        $this->_result = $result;
        return true;
      }
  }

  function disconnect()
  {
    $this->conid->disconnect();
  }
  function get_result()
  {
    return $this->_result;
  }

  function get_quote($str)
  {
    return $this->conid->quote($str);
  }


}

// 事前準備
// 手動で、
// createdb hoge
// psql hoge
// CREATE TABLE hoge (hoge text,insert_time timestamp);


$db = new db_access;
$db->set_dsn("pgsql://postgres:@localhost/hoge");
$db->do_connect();
//--------------------------------------------------------------
// select 文の練習
$str = $db->get_quote("1'2'3");
$query = "select {$str};";
print $query;
print "\n";
if($db->do_getall($query))
  {
    $data = $db->get_result();
    print_r($data);
  }
else
  {
    print $db->debuginfo;
  }

//--------------------------------------------------------------
//省略版(失敗時のrollbackはphpまかせ)insert方法
// addslashesによるエスケープ処理は止めましょう
// http://blog.ohgaki.net/index.php/yohgaki/2006/02/13/addslashesa_la_a_a_ua_sa_pa_fa_a_bc_a_ma
// addslashesは使っちゃダメ => DB.phpのquoteにて対応
// http://www.phppro.jp/qa/68?sort=asc
$hoge = $db->get_quote("1'2'3".time());
// quote処理と''(シングルクォート)を付与
$db->do_query("begin;");
$query = "insert into hoge(hoge,insert_time)values($hoge,now());";
print $query;
print "\n";
$db->do_query($query);
$db->do_query("commit;");

//--------------------------------------------------------------
$query = "select * from hoge where hoge = $hoge ;";
print $query;
print "\n";
if($db->do_getall($query))
  {
    $data = $db->get_result();
    print_r($data);
  }
else
  {
    print $db->debuginfo;
  }

//--------------------------------------------------------------
// 厳密バージョン
if($db->do_query("begin;"))
  {
    if($db->do_query("insert into hoge(insert_time)values(now());"))
      {
        if($db->do_query("commit;"))
          {
            print "登録完了\n";
          }
        else
          {
            print $db->debuginfo;
            print "登録失敗1(commit失敗)\n";
          }
      }
    else
      {
        print "登録失敗2(insert 失敗)\n";
        print $db->debuginfo;
        $db->do_query("role back;");
      }
  }
else
  {
    print $db->debuginfo;
    print "登録失敗3(begin失敗)\n";
  }
$db->disconnect();

?>

http://www.phppro.jp/qa/68?sort=asc
http://blog.ohgaki.net/index.php/yohgaki/2006/02/13/addslashesa_la_a_a_ua_sa_pa_fa_a_bc_a_ma