Init Repo

This commit is contained in:
root
2019-09-06 23:53:10 +08:00
commit f0ef89dfbb
7905 changed files with 914138 additions and 0 deletions

View File

@ -0,0 +1,67 @@
<?php
$pdo = new \PDO('swoole_mysql:dbname=db_koudaitong;host=127.0.0.1;port=3007', 'user_koudaitong', 'ocfLsVO7l2B3TMOPmpSX');
// 1
//$stmt = $pdo->prepare("select * from attachment where mp_id = :mp_id LIMIT 10");
//$stmt->bindValue(":mp_id", 1, \PDO::PARAM_INT);
// 2
$stmt = $pdo->prepare("select * from attachment where mp_id = ? LIMIT 10");
$stmt->bindValue(1, 1, \PDO::PARAM_INT);
$stmt->execute();
$r = $stmt->fetchAll(\PDO::FETCH_ASSOC);
var_dump($r);
$mysqli = new \mysqli();
$mysqli->connect('127.0.0.1', 'user_koudaitong', 'ocfLsVO7l2B3TMOPmpSX', 'db_koudaitong', '3007');
if ($mysqli->connect_errno) {
printf("Connect failed: [errno=%d]%s\n", $mysqli->connect_errno, $mysqli->connect_error);
exit();
}
$stmt = $mysqli->prepare("select * from attachment where mp_id = ? LIMIT 10");
if ($stmt) {
$kdt_id = 1;
$stmt->bind_param("i", $kdt_id);
$stmt->execute();
$stmt->bind_result($r);
$stmt->fetch();
var_dump($r);
$stmt->close();
} else {
printf("Prepare failed: [errno=%d]%s\n", $mysqli->errno, $mysqli->error);
}
$mysqli->close();
//require_once __DIR__ . "/swoole_mysql_init.php";
// sql syntax error
//$ret = $link->query("select");
//echo $link->error, "\n"; // You have an error in your SQL syntax; check the manual that corresponds to your MySQL swoole_server version for the right syntax to use near '' at line 1
//echo $link->errno; //1064
//exit;
// select
//$ret = $link->query("select 1, 1, 1");
// var_dump(mysqli_fetch_field($ret));
// var_dump(mysqli_fetch_assoc($ret));
// var_dump(mysqli_fetch_all($ret));
//exit;
// insert
//$ret = $link->query("insert into ad (`kdt_id`, `num`, `data`, `valid`, `created_time`, `update_time`) VALUES (99999, 1, 'data', 1, 0, 0)");
//var_dump($ret);
//var_dump($link->insert_id);
//exit;

View File

@ -0,0 +1,50 @@
<?php
require_once __DIR__ . "/swoole_mysql_init.php";
$sql = "select 1";
$bind = [];
$onQuery = function($mysql_result, $result) {
var_dump($result);
swoole_event_exit();
fprintf(STDERR, "SUCCESS");
};
$swoole_mysql = new \swoole_mysql();
$swoole_mysql->on("connect", function(\swoole_mysql $swoole_mysql) use($sql, $bind, $onQuery, $swoole_mysql) {
// $swoole_mysql->query($sql, $bind, swoole_function(\swoole_mysql $swoole_mysql, $result) use($onQuery) {
// $onQuery($swoole_mysql, $result);
// $swoole_mysql->close();
// });
});
$swoole_mysql->on("error", function(\swoole_mysql $swoole_mysql) use($onQuery, $swoole_mysql) {
$onQuery($swoole_mysql, "connection error");
});
$swoole_mysql->on("close", function() {
echo "closed\n";
});
$swoole_mysql->connect([
"host" => MYSQL_SERVER_HOST,
"port" => MYSQL_SERVER_PORT,
"user" => MYSQL_SERVER_USER,
"password" => MYSQL_SERVER_PWD,
"database" => MYSQL_SERVER_DB,
"charset" => "utf8mb4",
]);
// 未连上 直接 调用query
$r = $swoole_mysql->query($sql, $bind, function(\swoole_mysql $swoole_mysql, $result) use($onQuery) {
var_dump("query cb");
// TODO error error_no
$onQuery($swoole_mysql, $result);
// $swoole_mysql->close();
});
// 此处返回true 不符合预期
var_dump($r);

View File

@ -0,0 +1,21 @@
<?php
$swoole_mysql = new \swoole_mysql();
$swoole_mysql->on("close", function ()
{
echo "closed\n";
swoole_event_exit();
});
$r = $swoole_mysql->connect([
"host" => "11.11.11.11",
"port" => 9000,
"user" => "root",
"password" => "admin",
"database" => "test",
"charset" => "utf8mb4",
'timeout' => 1.0,
], function (\swoole_mysql $swoole_mysql, $result)
{
assert($result === false);
});

View File

@ -0,0 +1,63 @@
<?php
require_once __DIR__ . "/../../../include/bootstrap.php";
$onQuery = function ($swoole_mysql, $result)
{
assert($swoole_mysql->errno === 0);
$swoole_mysql->query("select 1", function ($swoole_mysql, $result)
{
assert($swoole_mysql->errno === 0);
echo "SUCCESS\n";
swoole_event_exit();
});
};
$sql = "show tables";
$swoole_mysql = new \swoole_mysql();
$swoole_mysql->on("close", function ()
{
echo "closed\n";
});
$onConnect = function (\swoole_mysql $swoole_mysql, $result) use ($sql, $onQuery)
{
if ($result)
{
$swoole_mysql->query_timeout = swoole_timer_after(1000, function () use ($onQuery, $swoole_mysql)
{
$onQuery($swoole_mysql, "query timeout");
});
$swoole_mysql->query($sql, function (\swoole_mysql $swoole_mysql, $result) use ($onQuery)
{
swoole_timer_clear($swoole_mysql->query_timeout);
$onQuery($swoole_mysql, $result);
});
}
else
{
echo "connect to swoole_mysql swoole_server[{$swoole_mysql->serverInfo['host']}:{$swoole_mysql->serverInfo['port']}] error [errno=$swoole_mysql->connect_errno, error=$swoole_mysql->connect_error]";
}
};
$r = $swoole_mysql->connect([
"host" => MYSQL_SERVER_HOST,
"port" => MYSQL_SERVER_PORT,
"user" => MYSQL_SERVER_USER,
"password" => MYSQL_SERVER_PWD,
"database" => MYSQL_SERVER_DB,
"charset" => "utf8mb4",
], $onConnect);
assert($r);
$r = @$swoole_mysql->connect([
"host" => MYSQL_SERVER_HOST,
"port" => MYSQL_SERVER_PORT,
"user" => MYSQL_SERVER_USER,
"password" => MYSQL_SERVER_PWD,
"database" => MYSQL_SERVER_DB,
"charset" => "utf8mb4",
], $onConnect);
assert($r === false);

View File

@ -0,0 +1,34 @@
<?php
require_once __DIR__ . "/../../../include/bootstrap.php";
function swoole_mysql_query($sql, callable $onQuery)
{
$mysql = new \swoole_mysql();
$mysql->on("close", function ()
{
echo "closed\n";
});
$mysql->connect([
"host" => MYSQL_SERVER_HOST,
"port" => MYSQL_SERVER_PORT,
"user" => MYSQL_SERVER_USER,
"password" => MYSQL_SERVER_PWD,
"database" => MYSQL_SERVER_DB,
"charset" => "utf8mb4",
], function (\swoole_mysql $mysql, $result) use ($sql, $onQuery)
{
if ($result)
{
$mysql->query($sql, function (\swoole_mysql $swoole_mysql, $result) use ($onQuery)
{
$onQuery($swoole_mysql, $result);
});
}
else
{
echo "connect error [errno=$mysql->connect_errno, error=$mysql->connect_error]";
}
});
}

View File

@ -0,0 +1,57 @@
<?php
// 轻微内存泄漏
//while (true) {
// echo memory_get_usage(), "\n";
// $pdo = new \PDO('swoole_mysql:dbname=test;host=127.0.0.1;port=3306', 'root', '123456');
// $stmt = $pdo->prepare("select * from test");
// $stmt->execute();
// $r = $stmt->fetchAll(\PDO::FETCH_ASSOC);
// // var_dump(count($r));
//}
$sql = "select * from component_v2";
define("MYSQL_SERVER_HOST", "127.0.0.1");
define("MYSQL_SERVER_PORT", 3306);
define("MYSQL_SERVER_USER", "test_database");
define("MYSQL_SERVER_PWD", "test_database");
define("MYSQL_SERVER_DB", "test_database");
//$sql = "select * from test";
//define("MYSQL_SERVER_HOST", "127.0.0.1");
//define("MYSQL_SERVER_PORT", 3306);
//define("MYSQL_SERVER_USER", "root");
//define("MYSQL_SERVER_PWD", "123456");
//define("MYSQL_SERVER_DB", "test");
class Callback
{
public $sql;
public $result;
public function __construct($sql)
{
$this->sql = $sql;
}
public function __invoke($mysql, $result)
{
echo memory_get_usage(), "\n";
$this->result = $result;
$mysql->query($this->sql, new Callback($this->sql));
}
}
$swoole_mysql = new \swoole_mysql();
$swoole_mysql->on("close", function() { echo "closed\n"; });
$swoole_mysql->connect([
"host" => MYSQL_SERVER_HOST,
"port" => MYSQL_SERVER_PORT,
"user" => MYSQL_SERVER_USER,
"password" => MYSQL_SERVER_PWD,
"database" => MYSQL_SERVER_DB,
"charset" => "utf8mb4",
], function(\swoole_mysql $mysql) use($sql) {
$mysql->query($sql, new Callback($sql));
});

View File

@ -0,0 +1,13 @@
<?php
require_once __DIR__ . "/../../../include/bootstrap.php";
$swoole_mysql = new \swoole_mysql();
$swoole_mysql->connect([
"host" => MYSQL_SERVER_HOST,
"port" => MYSQL_SERVER_PORT,
"user" => MYSQL_SERVER_USER,
"password" => MYSQL_SERVER_PWD,
"database" => MYSQL_SERVER_DB,
"charset" => "utf8mb4",
], null);

View File

@ -0,0 +1,16 @@
<?php
require_once __DIR__ . "/swoole_mysql_init.php";
$n = 1024 * 1024;
$fields = implode(", ", range(0, $n - 1));
swoole_mysql_query("select $fields", function($swoole_mysql, $result) {
if ($swoole_mysql->errno === 0) {
fprintf(STDERR, "SUCCESS");
} else {
fprintf(STDERR, "ERROR");
}
swoole_event_exit();
});

View File

@ -0,0 +1,27 @@
<?php
require_once __DIR__ . "/swoole_mysql_init.php";
//$pdo = new \PDO("swoole_mysql:dbname=showcase;host=127.0.0.1", "test_database", "test_database");
//$ret = $pdo->query("select 1, 1");
//var_dump($ret->fetchAll());
//exit;
//$link = new \mysqli();
//swoole_mysql_query();
//$link->connect(MYSQL_SERVER_HOST, MYSQL_SERVER_USER, MYSQL_SERVER_PWD, MYSQL_SERVER_DB, MYSQL_SERVER_PORT);
//$ret = $link->query("select 1, 1");
//$ret = $link->query("select * from ad");
//var_dump($ret);
//var_dump(mysqli_fetch_assoc($ret));
//var_dump(mysqli_fetch_field($ret));
//var_dump(mysqli_fetch_all($ret));
//exit;
swoole_mysql_query("select 1, 1", function($swoole_mysql, $result) {
assert($swoole_mysql->errno === 0);
var_dump($result);
assert(count($result[0]) === 2);
swoole_event_exit();
});

View File

@ -0,0 +1,46 @@
<?php
require_once __DIR__ . "/swoole_mysql_init.php";
function query($swoole_mysql, $dep = 0)
{
$sql = "select 1";
$swoole_mysql->query($sql, function(\swoole_mysql $swoole_mysql, $result) use($dep) {
// echo ".\n";
if ($dep > 20) {
fprintf(STDERR, "SUCCESS\n");
swoole_event_exit();
} else {
if ($swoole_mysql->errno !== 0) {
fprintf(STDERR, "FAIL");
swoole_event_exit();
} else {
query($swoole_mysql, ++$dep);
}
}
});
}
$swoole_mysql = new \swoole_mysql();
$swoole_mysql->on("close", function() {
echo "closed\n";
});
$swoole_mysql->conn_timeout = swoole_timer_after(1000, function() {
echo "connecte timeout\n\n\n";
});
$swoole_mysql->connect([
"host" => MYSQL_SERVER_HOST,
"port" => MYSQL_SERVER_PORT,
"user" => MYSQL_SERVER_USER,
"password" => MYSQL_SERVER_PWD,
"database" => MYSQL_SERVER_DB,
"charset" => "utf8mb4",
], function(\swoole_mysql $swoole_mysql) {
assert($swoole_mysql->errno === 0);
swoole_timer_clear($swoole_mysql->conn_timeout);
query($swoole_mysql);
});

View File

@ -0,0 +1,26 @@
<?php
require_once __DIR__ . "/../../../include/bootstrap.php";
$i = 10000;
$start = $end = 0;
while($i--) {
if ($i == 99) {
$start = memory_get_usage();
}
// 不应该在构造函数加引用计数
$swoole_mysql = new \swoole_mysql();
// xdebug_debug_zval("swoole_mysql"); // 2
if ($i == 1) {
$end = memory_get_usage();
}
}
if (($end - $start) < 1000) {
fprintf(STDERR, "SUCCESS");
} else {
fprintf(STDERR, "FAIL");
}
swoole_event_exit();

View File

@ -0,0 +1,12 @@
<?php
require_once __DIR__ . "/swoole_mysql_init.php";
swoole_mysql_query("select", function($mysql_result, $result) {
if ($mysql_result->errno === 1064) {
fprintf(STDERR, "SUCCESS");
} else {
fprintf(STDERR, "FAIL");
}
swoole_event_exit();
});