You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
67
vendor/swoole/tests/include/api/swoole_mysql/mysqli.php
vendored
Executable file
67
vendor/swoole/tests/include/api/swoole_mysql/mysqli.php
vendored
Executable 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;
|
50
vendor/swoole/tests/include/api/swoole_mysql/query_without_connect.php
vendored
Executable file
50
vendor/swoole/tests/include/api/swoole_mysql/query_without_connect.php
vendored
Executable 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);
|
21
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_connect_timeout.php
vendored
Executable file
21
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_connect_timeout.php
vendored
Executable 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);
|
||||
});
|
63
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_connect_twice.php
vendored
Executable file
63
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_connect_twice.php
vendored
Executable 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);
|
34
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_init.php
vendored
Executable file
34
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_init.php
vendored
Executable 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]";
|
||||
}
|
||||
});
|
||||
}
|
57
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_memory_leak.php
vendored
Executable file
57
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_memory_leak.php
vendored
Executable 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));
|
||||
});
|
13
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_on_check.php
vendored
Executable file
13
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_on_check.php
vendored
Executable 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);
|
16
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_query_multi_filed.php
vendored
Executable file
16
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_query_multi_filed.php
vendored
Executable 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();
|
||||
});
|
27
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_query_same_filed.php
vendored
Executable file
27
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_query_same_filed.php
vendored
Executable 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();
|
||||
});
|
46
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_recursive_query.php
vendored
Executable file
46
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_recursive_query.php
vendored
Executable 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);
|
||||
});
|
26
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_refcout.php
vendored
Executable file
26
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_refcout.php
vendored
Executable 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();
|
12
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_sql_syntax_error.php
vendored
Executable file
12
vendor/swoole/tests/include/api/swoole_mysql/swoole_mysql_sql_syntax_error.php
vendored
Executable 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();
|
||||
});
|
Reference in New Issue
Block a user