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)

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.