database enhancements, compatibility additions and bugfixes
diff --git a/system/database/drivers/mssql/mssql_driver.php b/system/database/drivers/mssql/mssql_driver.php
index 8e12a2d..7b024d4 100644
--- a/system/database/drivers/mssql/mssql_driver.php
+++ b/system/database/drivers/mssql/mssql_driver.php
@@ -408,9 +408,9 @@
 		// I don't believe this is necessary with MS SQL.  Not sure, though. - Rick

 	

 		/*

-		if (stristr($table, '.'))

+		if (strpos($table, '.') !== FALSE)

 		{

-			$table = preg_replace("/\./", "`.`", $table);

+			$table = '"' . str_replace('.', '"."', $table) . '"';

 		}

 		*/

 		

diff --git a/system/database/drivers/mysql/mysql_driver.php b/system/database/drivers/mysql/mysql_driver.php
index 372365a..edf09a1 100644
--- a/system/database/drivers/mysql/mysql_driver.php
+++ b/system/database/drivers/mysql/mysql_driver.php
@@ -418,7 +418,7 @@
 	{

 		if (strpos($table, '.') !== FALSE)

 		{

-			$table = str_replace('.', '`.`', $table);

+			$table = '`' . str_replace('.', '`.`', $table) . '`';

 		}

 		

 		return $table;

diff --git a/system/database/drivers/mysqli/mysqli_driver.php b/system/database/drivers/mysqli/mysqli_driver.php
index 31c2711..dab56c7 100644
--- a/system/database/drivers/mysqli/mysqli_driver.php
+++ b/system/database/drivers/mysqli/mysqli_driver.php
@@ -410,9 +410,9 @@
 	 */

 	function _escape_table($table)

 	{

-		if (stristr($table, '.'))

+		if (strpos($table, '.') !== FALSE)

 		{

-			$table = preg_replace("/\./", "`.`", $table);

+			$table = '`' . str_replace('.', '`.`', $table) . '`';

 		}

 		

 		return $table;

diff --git a/system/database/drivers/oci8/oci8_driver.php b/system/database/drivers/oci8/oci8_driver.php
index 8f63c25..ec26f5b 100644
--- a/system/database/drivers/oci8/oci8_driver.php
+++ b/system/database/drivers/oci8/oci8_driver.php
@@ -521,9 +521,9 @@
 	 */

 	function _escape_table($table)

 	{

-		if (stristr($table, '.'))

+		if (strpos($table, '.') !== FALSE)

 		{

-			$table = preg_replace("/\./", "`.`", $table);

+			$table = '"' . str_replace('.', '"."', $table) . '"';

 		}

 

 		return $table;

diff --git a/system/database/drivers/odbc/odbc_driver.php b/system/database/drivers/odbc/odbc_driver.php
index dd10fbd..fd24608 100644
--- a/system/database/drivers/odbc/odbc_driver.php
+++ b/system/database/drivers/odbc/odbc_driver.php
@@ -386,9 +386,9 @@
 	 */

 	function _escape_table($table)

 	{

-		if (stristr($table, '.'))

+		if (strpos($table, '.') !== FALSE)

 		{

-			$table = preg_replace("/\./", "`.`", $table);

+			$table = '`' . str_replace('.', '`.`', $table) . '`';

 		}

 		

 		return $table;

diff --git a/system/database/drivers/postgre/postgre_driver.php b/system/database/drivers/postgre/postgre_driver.php
index a32c37e..ce8cb25 100644
--- a/system/database/drivers/postgre/postgre_driver.php
+++ b/system/database/drivers/postgre/postgre_driver.php
@@ -406,9 +406,9 @@
 	 */

 	function _escape_table($table)

 	{

-		if (stristr($table, '.'))

+		if (strpos($table, '.') !== FALSE)

 		{

-			$table = '"'.preg_replace("/\./", '"."', $table).'"';

+			$table = '"' . str_replace('.', '"."', $table) . '"';

 		}

 		

 		return $table;