Sfoglia il codice sorgente

[sys] the `database` parameter of `Mysql.connect` is now optional

Andy Li 8 anni fa
parent
commit
b801d0aefa

+ 2 - 1
extra/CHANGES.txt

@@ -4,10 +4,11 @@
 
 	js : improved generation of `break` inside `switch` inside loops (#4964)
 	cs : improved generation of enum classes (#6119)
+	sys : the `database` parameter of `Mysql.connect` is now optional
 
 	Removals:
 
-	all : SPOD (sys.db.Object, sys.db.Manager and friends) was moved into a separate library `record-macros` (https://github.com/HaxeFoundation/record-macros)
+	sys : SPOD (sys.db.Object, sys.db.Manager and friends) was moved into a separate library `record-macros` (https://github.com/HaxeFoundation/record-macros)
 	js : js.JQuery and js.SWFObject were moved into hx3compat library (https://github.com/HaxeFoundation/hx3compat),
 	     it's recommended to use more modern js.jquery.JQuery and js.swfobject.SWFObject classes.
 

+ 8 - 6
std/cpp/_std/sys/db/Mysql.hx

@@ -203,7 +203,7 @@ private class MysqlConnection implements sys.db.Connection {
 		user : String,
 		pass : String,
 		?socket : String,
-		database : String
+		?database : String
 	} ) : sys.db.Connection {
 		var o = {
 			host : params.host,
@@ -213,11 +213,13 @@ private class MysqlConnection implements sys.db.Connection {
 			socket : if( params.socket == null ) null else params.socket
 		};
 		var c = D.connect(o);
-		try {
-			D.select_db(c,params.database);
-		} catch( e : Dynamic ) {
-			D.close(c);
-			cpp.Lib.rethrow(e);
+		if (params.database != null) {
+			try {
+				D.select_db(c,params.database);
+			} catch( e : Dynamic ) {
+				D.close(c);
+				cpp.Lib.rethrow(e);
+			}
 		}
 		return new MysqlConnection(c);
 	}

+ 4 - 2
std/java/_std/sys/db/Mysql.hx

@@ -31,7 +31,7 @@ class Mysql {
 		user : String,
 		pass : String,
 		?socket : String,
-		database : String
+		?database : String
 	} ) : sys.db.Connection {
 		if (!init)
 		{
@@ -49,7 +49,9 @@ class Mysql {
 			if (params.port != null)
 				url.add(':${params.port}');
 		}
-		url.add('/${params.database}');
+		if (params.database != null) {
+			url.add('/${params.database}');
+		}
 		var cnx = java.sql.DriverManager.getConnection(url.toString(), params.user, params.pass);
 		return java.db.Jdbc.create(cnx);
 	}

+ 8 - 6
std/neko/_std/sys/db/Mysql.hx

@@ -191,7 +191,7 @@ private class MysqlConnection implements sys.db.Connection {
 		user : String,
 		pass : String,
 		?socket : String,
-		database : String
+		?database : String
 	} ) : sys.db.Connection {
 		var o = untyped {
 			host : params.host.__s,
@@ -201,11 +201,13 @@ private class MysqlConnection implements sys.db.Connection {
 			socket : if( params.socket == null ) null else params.socket.__s
 		};
 		var c = D.connect(o);
-		try {
-			D.select_db(c,untyped params.database.__s);
-		} catch( e : Dynamic ) {
-			D.close(c);
-			neko.Lib.rethrow(e);
+		if (params.database != null) {
+			try {
+				D.select_db(c,untyped params.database.__s);
+			} catch( e : Dynamic ) {
+				D.close(c);
+				neko.Lib.rethrow(e);
+			}
 		}
 		return new MysqlConnection(c);
 	}

+ 4 - 2
std/php/_std/sys/db/Mysql.hx

@@ -31,7 +31,7 @@ import sys.db.Connection;
 		user : String,
 		pass : String,
 		?socket : String,
-		database : String
+		?database : String
 	} ) : sys.db.Connection {
 		var dsn="mysql:";
 		if (params.socket !=null)
@@ -41,7 +41,9 @@ import sys.db.Connection;
 			if (params.port!=null)
 				dsn+='port='+params.port+";";
 		}
-		dsn+="dbname="+params.database;
+		if (params.database != null) {
+			dsn+="dbname="+params.database;
+		}
 		return php.db.PDO.open(dsn,params.user,params.pass);
 	}
 

+ 4 - 3
std/php7/_std/sys/db/Mysql.hx

@@ -34,7 +34,7 @@ import php.db.Mysqli_result;
 			user : String,
 			pass : String,
 			?socket : String,
-			database : String
+			?database : String
 		}
 	) : Connection {
 		return new MysqlConnection(params);
@@ -51,11 +51,12 @@ private class MysqlConnection implements Connection {
 			user : String,
 			pass : String,
 			?socket : String,
-			database : String
+			?database : String
 		}
 	) : Void {
 		if (params.port == null) params.port = Std.parseInt(Global.ini_get('mysqli.default_port'));
-		if (params.socket == null) params.socket = Global.ini_get('mysqli.default_socket');
+		if (params.socket == null) params.socket = Global.ini_get('mysqli.default_socket');]
+		if (params.database == null) params.database = "";
 
 		db = new Mysqli(params.host, params.user, params.pass, params.database, params.port, params.socket);
 	}

+ 1 - 1
std/sys/db/Mysql.hx

@@ -29,7 +29,7 @@ class Mysql {
 		user : String,
 		pass : String,
 		?socket : String,
-		database : String
+		?database : String
 	} ) : sys.db.Connection {
 		throw "Not implemented for this platform";
 		return null;