Exemple #1
0
        /// <inheritDoc />
        protected override string BuildConnectionString(ReadOnlySpan <char> dsn, string user, string password, PhpArray options)
        {
            var csb = new MySqlConnectionStringBuilder();

            // parse and validate the datasource string:
            DataSourceString.ParseNameValue(dsn, csb, (_csb, name, value) =>
            {
                // unknown option aliases:
                if (name.Equals("dbname", StringComparison.OrdinalIgnoreCase))
                {
                    name = "Database";
                }

                //
                _csb[name] = value;
            });

            //
            if (!string.IsNullOrEmpty(user))
            {
                csb.UserID = user;
            }
            if (!string.IsNullOrEmpty(password))
            {
                csb.Password = password;
            }

            if (options != null && options.Count != 0)
            {
                csb.Pooling = options[PDO.ATTR_PERSISTENT].ToBoolean();
            }

            //
            return(csb.ConnectionString);
        }