Слияние кода завершено, страница обновится автоматически
composer.json
{
"require": {
"wwaayyaa/mysql-timeout": "dev-master"
}
}
$ composer install
Код на PHP:
$conf = Conf::$db1;
print_r($conf);
$d = new MysqlTimeout($conf);
echo "now:".time()."\n";
$r = $d->query('select sleep(2) as `sleep`,2 as `sec`;');
print_r($r);
echo "sleep 2s,now:".time()."\n";
try{
$r = $d->query('select sleep(5) as `sleep`,5 as `sec`;',3);
}catch(Exception $e){
echo sprintf("error message:%s ,error code : %d \n",$e->getMessage(),$e->getCode());
}
echo "sleep 5s but timeout is 3s,so throw a error.now:".time()."\n";
$d = new MysqlTimeout($conf);//must new a MysqlTimeout. because
$r = $d->query('select sleep(5) as `sleep`,5 as `sec`;',6);
print_r($r);
echo "sleep 5s success,because timeout is 6s. now:".time()."\n";
//Other methods
$r = $d->update("update dtk_zhibo_chat_log set addtime=now() where id = 6 or id = 17;");
echo sprintf("success rows:%d \n",$r);
$r = $d->insert("insert into dtk_zhibo_chat_log (zhiboId,content) values (1292,'test');");
echo sprintf("primary id:%d \n",$r);
Результат:
Array
(
[host] => 127.0.0.1
[port] => 3306
[user] => root
[password] => root
[dbname] => test
[charset] => utf8
)
now:1475056910
Array
(
[0] => Array
(
[sleep] => 0
[sec] => 2
)
)
sleep 2s,now:1475056912
error message:timeout ,error code : 922922
sleep 5s but timeout is 3s,so throw a error.now:1475056915
Array
(
[0] => Array
(
[sleep] => 0
[sec] => 5
)
)
sleep 5s success,because timeout is 6s. now:1475056920
success rows:2
primary id:1036
/**
* @return mixed query data
*/
public function query($sql, $timeout = 3);
/**
* @return int rows count
*/
public function update($sql, $timeout = 3);
/**
* @return int data primary id
*/
public function insert($sql, $timeout = 3);
/**
* @return int rows count
*/
public function delete($sql, $timeout = 3);
3
)0,05
секунды,max_execution_time
и MySQL timeout settings
.Если время ожидания запроса истекло, MysqlTimeout вызовет исключение с номером
922922
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )