30 define(
'CAS_PGT_STORAGE_DB_DEFAULT_TABLE',
'cas_pgts');
115 return 'table=`'.$this->_getTable().
'\'';
139 $cas_parent, $dsn_or_pdo, $username=
'', $password=
'', $table=
'',
144 parent::__construct($cas_parent);
147 if ( empty($table) ) {
155 if ($dsn_or_pdo instanceof PDO) {
156 $this->_pdo = $dsn_or_pdo;
158 $this->_dsn = $dsn_or_pdo;
159 $this->_username = $username;
160 $this->_password = $password;
165 $this->_table = $table;
191 if (!($this->_pdo instanceof PDO)) {
193 $this->_pdo =
new PDO(
194 $this->_dsn, $this->_username, $this->_password,
195 $this->_driver_options
198 catch(PDOException $e) {
199 phpCAS::error(
'Database connection error: ' . $e->getMessage());
225 $this->_errMode = $pdo->getAttribute(PDO::ATTR_ERRMODE);
226 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
238 $pdo->setAttribute(PDO::ATTR_ERRMODE, $this->_errMode);
255 return 'CREATE TABLE ' . $this->
_getTable()
256 .
' (pgt_iou VARCHAR(255) NOT NULL PRIMARY KEY, pgt VARCHAR(255) NOT NULL)';
267 return 'INSERT INTO ' . $this->
_getTable()
268 .
' (pgt_iou, pgt) VALUES (:pgt_iou, :pgt)';
280 return 'SELECT pgt FROM ' . $this->
_getTable() .
' WHERE pgt_iou = :pgt_iou';
291 return 'DELETE FROM ' . $this->
_getTable() .
' WHERE pgt_iou = :pgt_iou';
317 $pdo->beginTransaction();
319 $query = $pdo->query($this->createTableSQL());
320 $query->closeCursor();
324 catch(PDOException $e) {
329 catch(PDOException $e) {
331 phpCAS::error(
'error creating PGT storage table: ' . $e->getMessage());
349 public function write($pgt, $pgt_iou)
358 $pdo->beginTransaction();
361 $query->bindValue(
':pgt', $pgt, PDO::PARAM_STR);
362 $query->bindValue(
':pgt_iou', $pgt_iou, PDO::PARAM_STR);
364 $query->closeCursor();
368 catch(PDOException $e) {
373 catch(PDOException $e) {
375 phpCAS::error(
'error writing PGT to database: ' . $e->getMessage());
402 $pdo->beginTransaction();
406 $query->bindValue(
':pgt_iou', $pgt_iou, PDO::PARAM_STR);
408 $pgt = $query->fetchColumn(0);
409 $query->closeCursor();
413 $query->bindValue(
':pgt_iou', $pgt_iou, PDO::PARAM_STR);
415 $query->closeCursor();
419 catch(PDOException $e) {
424 catch(PDOException $e) {
426 phpCAS::trace(
'error reading PGT from database: ' . $e->getMessage());
__construct( $cas_parent, $dsn_or_pdo, $username='', $password='', $table='', $driver_options=null)
const CAS_PGT_STORAGE_DB_DEFAULT_TABLE