ssb Fri Feb 16 09:57:06 2001 EDT
Modified files:
/php4/pear/DB mysql.php
Log:
* load mysql extension if needed
Index: php4/pear/DB/mysql.php
diff -u php4/pear/DB/mysql.php:1.46 php4/pear/DB/mysql.php:1.47
--- php4/pear/DB/mysql.php:1.46 Fri Feb 16 09:14:40 2001
+++ php4/pear/DB/mysql.php Fri Feb 16 09:57:06 2001
@@ -51,33 +51,33 @@
function DB_mysql()
{
$this->DB_common();
- $this->phptype = "mysql";
- $this->dbsyntax = "mysql";
- $this->features = array(
- "prepare" => false,
- "pconnect" => true,
- "transactions" => false
- );
-
- $this->errorcode_map = array(
- 1004 => DB_ERROR_CANNOT_CREATE,
- 1005 => DB_ERROR_CANNOT_CREATE,
- 1006 => DB_ERROR_CANNOT_CREATE,
- 1007 => DB_ERROR_ALREADY_EXISTS,
- 1008 => DB_ERROR_CANNOT_DROP,
- 1046 => DB_ERROR_NODBSELECTED,
+ $this->phptype = "mysql";
+ $this->dbsyntax = "mysql";
+ $this->features = array(
+ "prepare" => false,
+ "pconnect" => true,
+ "transactions" => false
+ );
+ $this->errorcode_map = array(
+ 1004 => DB_ERROR_CANNOT_CREATE,
+ 1005 => DB_ERROR_CANNOT_CREATE,
+ 1006 => DB_ERROR_CANNOT_CREATE,
+ 1007 => DB_ERROR_ALREADY_EXISTS,
+ 1008 => DB_ERROR_CANNOT_DROP,
+ 1046 => DB_ERROR_NODBSELECTED,
1050 => DB_ERROR_ALREADY_EXISTS,
- 1051 => DB_ERROR_NOSUCHTABLE,
- 1054 => DB_ERROR_NOSUCHFIELD,
- 1062 => DB_ERROR_ALREADY_EXISTS,
- 1064 => DB_ERROR_SYNTAX,
- 1100 => DB_ERROR_NOT_LOCKED,
- 1136 => DB_ERROR_VALUE_COUNT_ON_ROW,
- 1146 => DB_ERROR_NOSUCHTABLE,
- );
+ 1051 => DB_ERROR_NOSUCHTABLE,
+ 1054 => DB_ERROR_NOSUCHFIELD,
+ 1062 => DB_ERROR_ALREADY_EXISTS,
+ 1064 => DB_ERROR_SYNTAX,
+ 1100 => DB_ERROR_NOT_LOCKED,
+ 1136 => DB_ERROR_VALUE_COUNT_ON_ROW,
+ 1146 => DB_ERROR_NOSUCHTABLE,
+ );
}
// }}}
+
// {{{ connect()
/**
@@ -92,44 +92,45 @@
function connect($dsn, $persistent = false)
{
- if (is_array($dsn)) {
- $dsninfo = &$dsn;
- } else {
- $dsninfo = DB::parseDSN($dsn);
- }
-
- if (!$dsninfo || !$dsninfo["phptype"]) {
- return $this->raiseError(); // XXX ERRORMSG
- }
+ if (is_array($dsn)) {
+ $dsninfo = &$dsn;
+ } else {
+ $dsninfo = DB::parseDSN($dsn);
+ }
+
+ if (!$dsninfo || !$dsninfo["phptype"]) {
+ return $this->raiseError(); // XXX ERRORMSG
+ }
- $dbhost = $dsninfo["hostspec"] ? $dsninfo["hostspec"] : "localhost";
- $user = $dsninfo["username"];
- $pw = $dsninfo["password"];
-
- $connect_function = $persistent ? "mysql_pconnect" : "mysql_connect";
-
- if ($dbhost && $user && $pw) {
- $conn = $connect_function($dbhost, $user, $pw);
- } elseif ($dbhost && $user) {
- $conn = $connect_function($dbhost, $user);
- } elseif ($dbhost) {
- $conn = $connect_function($dbhost);
- } else {
- $conn = false;
- }
-
- if ($conn == false) {
- return $this->raiseError(); // XXX ERRORMSG
- }
-
- if ($dsninfo["database"]) {
- if (!mysql_select_db($dsninfo["database"], $conn)) {
- return $this->raiseError(); // XXX ERRORMSG
- }
- }
-
- $this->connection = $conn;
- return DB_OK;
+ $dbhost = $dsninfo["hostspec"] ? $dsninfo["hostspec"] : "localhost";
+ $user = $dsninfo["username"];
+ $pw = $dsninfo["password"];
+
+ DB::assertExtension("mysql");
+ $connect_function = $persistent ? "mysql_pconnect" : "mysql_connect";
+
+ if ($dbhost && $user && $pw) {
+ $conn = $connect_function($dbhost, $user, $pw);
+ } elseif ($dbhost && $user) {
+ $conn = $connect_function($dbhost, $user);
+ } elseif ($dbhost) {
+ $conn = $connect_function($dbhost);
+ } else {
+ $conn = false;
+ }
+
+ if ($conn == false) {
+ return $this->raiseError(); // XXX ERRORMSG
+ }
+
+ if ($dsninfo["database"]) {
+ if (!mysql_select_db($dsninfo["database"], $conn)) {
+ return $this->raiseError(); // XXX ERRORMSG
+ }
+ }
+
+ $this->connection = $conn;
+ return DB_OK;
}
// }}}
@@ -144,7 +145,7 @@
*/
function disconnect()
{
- return mysql_close($this->connection);
+ return mysql_close($this->connection);
}
// }}}
@@ -166,12 +167,12 @@
{
$this->last_query = $query;
$query = $this->modifyQuery($query);
- $result = mysql_query($query, $this->connection);
- if (!$result) {
- return $this->mysqlRaiseError();
- }
- // Determine which queries that should return data, and which
- // should return an error code only.
+ $result = mysql_query($query, $this->connection);
+ if (!$result) {
+ return $this->mysqlRaiseError();
+ }
+ // Determine which queries that should return data, and which
+ // should return an error code only.
return DB::isManip($query) ? DB_OK : $result;
}
@@ -191,27 +192,27 @@
*/
function &fetchRow($result, $fetchmode = DB_FETCHMODE_DEFAULT)
{
- if ($fetchmode == DB_FETCHMODE_DEFAULT) {
- $fetchmode = $this->fetchmode;
- }
-
- if ($fetchmode & DB_FETCHMODE_ASSOC) {
- $row = mysql_fetch_array($result, MYSQL_ASSOC);
- } else {
- $row = mysql_fetch_row($result);
- }
+ if ($fetchmode == DB_FETCHMODE_DEFAULT) {
+ $fetchmode = $this->fetchmode;
+ }
+
+ if ($fetchmode & DB_FETCHMODE_ASSOC) {
+ $row = mysql_fetch_array($result, MYSQL_ASSOC);
+ } else {
+ $row = mysql_fetch_row($result);
+ }
- if (!$row) {
- $errno = mysql_errno($this->connection);
+ if (!$row) {
+ $errno = mysql_errno($this->connection);
- if (!$errno) {
- return null;
- }
+ if (!$errno) {
+ return null;
+ }
- return $this->mysqlRaiseError($errno);
- }
+ return $this->mysqlRaiseError($errno);
+ }
- return $row;
+ return $row;
}
// }}}
@@ -230,27 +231,27 @@
*/
function fetchInto($result, &$arr, $fetchmode = DB_FETCHMODE_DEFAULT)
{
- if ($fetchmode == DB_FETCHMODE_DEFAULT) {
- $fetchmode = $this->fetchmode;
- }
-
- if ($fetchmode & DB_FETCHMODE_ASSOC) {
- $arr = mysql_fetch_array($result, MYSQL_ASSOC);
- } else {
- $arr = mysql_fetch_row($result);
- }
-
- if (!$arr) {
- $errno = mysql_errno($this->connection);
-
- if (!$errno) {
- return NULL;
- }
+ if ($fetchmode == DB_FETCHMODE_DEFAULT) {
+ $fetchmode = $this->fetchmode;
+ }
+
+ if ($fetchmode & DB_FETCHMODE_ASSOC) {
+ $arr = mysql_fetch_array($result, MYSQL_ASSOC);
+ } else {
+ $arr = mysql_fetch_row($result);
+ }
+
+ if (!$arr) {
+ $errno = mysql_errno($this->connection);
+
+ if (!$errno) {
+ return NULL;
+ }
- return $this->mysqlRaiseError($errno);
- }
+ return $this->mysqlRaiseError($errno);
+ }
- return DB_OK;
+ return DB_OK;
}
// }}}
@@ -267,18 +268,18 @@
*/
function freeResult($result)
{
- if (is_resource($result)) {
- return mysql_free_result($result);
- }
-
- if (!isset($this->prepare_tokens[$result])) {
- return false;
- }
+ if (is_resource($result)) {
+ return mysql_free_result($result);
+ }
+
+ if (!isset($this->prepare_tokens[$result])) {
+ return false;
+ }
- unset($this->prepare_tokens[$result]);
- unset($this->prepare_types[$result]);
+ unset($this->prepare_tokens[$result]);
+ unset($this->prepare_types[$result]);
- return true;
+ return true;
}
// }}}
@@ -295,13 +296,13 @@
*/
function numCols($result)
{
- $cols = mysql_num_fields($result);
+ $cols = mysql_num_fields($result);
- if (!$cols) {
- return $this->mysqlRaiseError();
- }
+ if (!$cols) {
+ return $this->mysqlRaiseError();
+ }
- return $cols;
+ return $cols;
}
// }}}
@@ -335,6 +336,7 @@
*
* @return number of rows affected by the last query
*/
+
function affectedRows()
{
if (DB::isManip($this->last_query)) {
@@ -359,7 +361,7 @@
function errorNative()
{
- return mysql_errno($this->connection);
+ return mysql_errno($this->connection);
}
// }}}
@@ -398,7 +400,7 @@
if (DB::isError($result)) {
return $result;
}
- return mysql_insert_id($this->connection);
+ return mysql_insert_id($this->connection);
}
// }}}
@@ -453,7 +455,6 @@
// TODO/wishlist:
// simpleFetch
// simpleGet
- // affectedRows
// longReadlen
// binmode
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]