# Method Sql.Sql()->create()

Method create

  `Sql.Sql Sql.Sql(string host)`
  `Sql.Sql Sql.Sql(string host, string db)`
  `Sql.Sql Sql.Sql(string host, mapping(string:int|string) options)`
  `Sql.Sql Sql.Sql(string host, string db, string user)`
  `Sql.Sql Sql.Sql(string host, string db, string user, string password)`
  `Sql.Sql Sql.Sql(string host, string db, string user, string password, mapping(string:int|string) options)`
  `Sql.Sql Sql.Sql(object host)`
  `Sql.Sql Sql.Sql(object host, string db)`

Description

  Create a new generic SQL object.

Parameter `host`

  `object` | Use this object to access the SQL-database.

  `string`

  Connect to the server specified. The string should be on the format: `dbtype://[user[:password]@]hostname[:port][/database]` Use the dbtype protocol to connect to the database server on the specified host. If the hostname is `""` then the port can be a file name to access through a UNIX-domain socket or similar, e g `"mysql://root@:/tmp/mysql.sock/"`.

  There is a special dbtype `"mysqls"` which works like `"mysql"` but sets the `CLIENT_SSL` option and loads the `/etc/my.cnf` config file to find the SSL parameters. The same function can be achieved using the `"mysql"` dbtype.

  `int(0..0)` | Access through a UNIX-domain socket or similar.

Parameter `db`

  Select this database.

Parameter `user`

  User name to access the database as.

Parameter `password`

  Password to access the database.

Parameter `options`

  Optional mapping of options. See the SQL-database documentation for the supported options. (eg Mysql.mysql()->create()).

Note

  In versions of Pike prior to 7.2 it was possible to leave out the dbtype, but that has been deprecated, since it never worked well.

Note

  Exactly which databases are supported by pike depends on the installed set of client libraries when pike was compiled.

  The possible ones are

  mysql

    libmysql based mysql connection

  mysqls

    libmysql based mysql connection, using SSL

  dsn

    ODBC based connection

  msql

    Msql

  odbc

    ODBC based connection

  oracle

    Oracle using oracle libraries

  pgsql

    PostgreSQL direct network access. This module is independent of any external libraries.

  postgres

    PostgreSQL libray access. Uses the Postgres module.

  rsql

    Remote SQL api, requires a rsql server running on another host. This is an API that uses sockets to communicate with a remote pike running pike -x rsqld on another host.

  sqlite

    In-process SQLite database, uses the SQLite module

  sybase

    Uses the sybase module to access sybase

  tds

    Sybase and Microsoft SQL direct network access using the TDS protocol. This module is independent of any external libraries.

Note

  Support for options was added in Pike 7.3.