PHP要使用XdevAPI扩展连接MySQL8,首先要安装MySQL8,而且需要为PHP安装配置mysql_xdevapi
扩展,见之前的教程PHP8安装MySQL xdevapi扩展。
装好之后就可以连接了。
示例代码
<?php
try {
$session = \mysql_xdevapi\getSession("mysqlx://username:password@127.0.0.1:33060");
var_dump($session);
//创建schema和collection,相当于数据库和表
$schema = $session->createSchema('test_dbx');
$collection = $schema->createCollection('collection_a');
//创建后下次可直接获取schema和collection
//$schema = $session->getSchema( "test_dbx" );
//$collection = $schema->getCollection( "collection_a" );
$data1 = ['category' => 'dog', 'num' => 1];
$data2 = ['category' => 'cat', 'num' => 2];
$result1 = $collection->add($data1)->execute();
$result2 = $collection->add($data2)->execute();
} catch(\Exception $e) {
die("Exception occured: " . $e->getMessage());
}
注意点
- MySQL8的X协议默认连接端口是
33060
而不是3306
,要使用mysqlx
协议而不是mysql
,新增数据得通过X协议; - 查询数据可通过传统方式使用
3306
端口连接