开始
使用Medoo是非常简单的事!
Medoo1.2开始不支持PHP5.4或以下,若你使用的是1.2以前的版本,请选择菜单 中文文档(<1.2)
要求
- PHP>=5.4, 必须支持PDO.
- 支持 MySQL, MSSQL, SQLite 等数据库.
- 确保php_pdo_xxx (xxx = 数据库类型) 的xxx数据扩展已经正确安装并启用.
- 需要懂一些SQL知识.
Tips
在PHP5.4+中你可以使用[]作为数组参数语法,而不再使用array().
// On PHP 5.1 var data = array("foo", "bar"); // On PHP 5.4+ var data = ["foo", "bar"];
php_pdo 扩展列表
- MySQL, MariaDB -> php_pdo_mysql
- MSSQL (Windows) -> php_pdo_sqlsrv
- MSSQL (Liunx/UNIX) -> php_pdo_dblib / php_pdo_sqlsrv
- Oracle -> php_pdo_oci
- Oracle version 8 -> php_pdo_oci8
- SQLite -> php_pdo_sqlite
- PostgreSQL -> php_pdo_pgsql
- Sybase -> php_pdo_dblib
PHP PDO安装
medoo需要PHP支持PDO扩展,请在安装相关扩展后继续以下操作
// 打开php.ini找到你想要的相应扩展,去掉前面的;号即可 // 将 ;extension=php_pdo_mysql.dll // 修改成 extension=php_pdo_mysql.dll // 保存,重启你的PHP或者服务器 //如果PDO安装成功,你可以通过phpinfo()查看到它.
如果你通过终端(linux)命令行安装,系统会自动安装配置相应扩展
$ sudo apt-get install php5-mysql
PHP依赖安装
如果你通过php自带的依赖扩展安装它,可以使用下面的命令,或者你根据自己的需要修改即可。
$ composer require catfan/Medoo
升级方法
$ composer update
安装源文件安装
这是最简单的方法,下载medoo源文件,放到你的PHP开发目录里,载入即可
require 'medoo.php';
配置
这儿提供三种数据库的连接演示.
// If you installed via composer, just use this code to requrie autoloader on the top of your projects. require 'vendor/autoload.php'; // Using Medoo namespace use Medoo\Medoo; $database = new Medoo([ // required 'database_type' => 'mysql', 'database_name' => 'name', 'server' => 'localhost', 'username' => 'your_username', 'password' => 'your_password', // [optional] 'charset' => 'utf8', 'port' => 3306, // [optional] Table prefix 'prefix' => 'PREFIX_', // [optional] Enable logging (Logging is disabled by default for better performance) 'logging' => true, // [optional] MySQL socket (shouldn't be used with server and port) 'socket' => '/tmp/mysql.sock', // [optional] driver_option for connection, read more from http://www.php.net/manual/en/pdo.setattribute.php 'option' => [ PDO::ATTR_CASE => PDO::CASE_NATURAL ], // [optional] Medoo will execute those commands after connected to the database for initialization 'command' => [ 'SET SQL_MODE=ANSI_QUOTES' ] ]); $database->insert("account", [ "user_name" => "foo", "email" => "foo@bar.com" ]);
定制DSN链接
缺省情况下Medoo不支持的数据库您还可以使用自定义DSN连接,特别是一些新数据库,DSN参数比较特殊,或者如果要为连接添加更多的DSN参数值。
连接格式.
{driver}:{key}={value};{key}={value}
$database = new Medoo([ // Started using customized DSN connection 'dsn' => [ // The PDO driver name for DSN driver parameter 'driver' => 'mydb', // The parameters with key and value for DSN 'server' => '12.23.34.45', 'port' => '8886' ], // [optional] Medoo will have different handle method according to different database type 'database_type' => 'mysql', 'username' => 'your_username', 'password' => 'your_password' ]); // The final DSN connection string will be generated like this mydb:server=12.23.34.45;port=8886
For MSSQL
如果你要使用Medoo连接你的MSSQL数据库,你需要安装相关扩展:Windows安装pdo_sqlsrv、Linux/UNIX安装pdo_dblib. pdo_mssql 扩展已被PHP废弃,不建议使用.
$database = new Medoo([ 'database_type' => 'mysql', 'database_name' => 'name', 'server' => 'localhost', 'username' => 'your_username', 'password' => 'your_password', // [optional] The application name 'appname' => 'test', // [optional] If you want to force Medoo to use dblib driver for connecting MSSQL database 'driver' => 'dblib' ]);
现在Medoo可以使用sqlsrv来驱动MSSQL,详见微软官方文档 https://docs.microsoft.com/en-us/sql/connect/php/connection-options?view=sql-server-2017.
$database = new Medoo([ 'database_type' => 'mysql', 'database_name' => 'name', 'server' => 'localhost', 'username' => 'your_username', 'password' => 'your_password', // [optional] MSSQL connection options 'application_intent' => 'ReadOnly', 'attach_db_file_name' => './database.sql', 'authentication' => 'SqlPassword', 'column_encryption' => 'Enabled', 'connection_pooling' => 1, 'encrypt' => 1, 'failover_partner' => 'MultiSubnetFailover', 'key_store_authentication' => 'KeyVaultPassword', 'key_store_principal_id' => 'AzureName', 'key_store_secret' => 'AzurePass', 'login_timeout' => '20', 'multiple_active_result_sets' => 1, 'multi_subnet_failover' => 'Yes', 'scrollable' => 'buffered', 'trace_file' => './path', 'trace_on' => 1, 'transaction_isolation' => PDO::SQLSRV_TXN_SNAPSHOT, 'transparent_network_ip_resolution' => 'Enabled', 'trust_server_certificate' => 1, 'wsid' => 'Computer1' ]);
For SQLite
$database = new medoo([ 'database_type' => 'sqlite', 'database_file' => 'my/database/path/database.db' ]); $database->insert("account", [ "user_name" => "foo", "email" => "foo@bar.com" ]);