반응형

php 409

php redis 연결 끊기

php redis 연결 끊김, pconnect 연결 실패 문제 소개하다. swoole, workerman과 같은 CLI 긴 연결 모드에서 Redis가 비정상적으로 끊어졌다가 다시 켜지는 경우 일반적으로 프로그램을 다시 시작해야 정상적으로 사용할 수 있습니다. 본문에서는 서비스를 재개하지 않고 원래의 Redis 단선을 실현하는 방법을 소개합니다. 원리 Redis 연결이 끊겼을 때 호출하기 $Redis->ping()은 Notice 오류를 트리거합니다. Notice: Redis::ping(): send of 14 bytes failed with errno=10054 redis 인스턴스를 가져올 때 ping이 불통되거나 이상이 생기면 다시 연결 실현1 try catch가 notice 이상을 포착하지 못하기 때문..

개발 꿀팁/PHP 2022.11.02

php Warning, Notice 오류 캡처

소개하다. php에서 try catch가 Warning, Notice 오류를 캡처하지 못함 해결 방법 1. 에러 처리 함수를 등록하여 글로벌 캡처, 단점, try catch가 바로 포착하여 처리하지 못함 set_error_handler([__CLASS__, 'error']); set_exception_handler([__CLASS__, 'exception']); register_shutdown_function([__CLASS__, 'shutdown']); set_error_handler 일반적으로 캡처: E_NOTICE, E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE 캡처할 수 없음: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E..

개발 꿀팁/PHP 2022.11.02

php가 같은 id를 병합

php 필드에 따라 배열 병합, 동일한 id에 따라 배열 병합 소개하다. 사용자는 여러 개의 닉네임을 가지고 있으며, 각각의 닉네임은 하나의 레코드에 대응하며, 동일한 사용자의 닉네임 등의 정보를 하나로 통합하려고 한다. 초기 데이터 형식 $a = array( ['id' => 1, 'name' => 'liming' ,'nickname'=> 'aaa'], ['id' => 1, 'name' => 'liming' ,'nickname'=> 'bbb'], ['id' => 1, 'name' => 'liming' ,'nickname'=> 'ccc'], ['id' => 2, 'name' => 'xiaoqiang' ,'nickname'=> 'ddd'], ['id' => 2, 'name' => 'xiaoqiang' ,'n..

개발 꿀팁/PHP 2022.11.02

php는 2차원 배열에 중복된 id가 있는지 여부를 판단한다

원리 array_column id 배열 가져오기 array_unique 무게 제거 두 수의 길이가 일치하지 않으면 중복된 id가 존재한다 코드 $list = array( ) ['id' => 1, 'name' => 'hahah'], ['id' => 2, 'name' => 'hah44ah'], ['id' => 3, 'name' => 'hagghah'], ['id' => 3, 'name' => 'ha545hah'], ['id' => 4, 'name' => 'ha54c5hah'], ); $ids = array_column($list, 'id'); if (count($ids) != count(array_unique($ids)) echo '반복';

개발 꿀팁/PHP 2022.11.02

php에서 HTTP 요청 코드 시작

conn($url);$this->setHeader('Host: ' . $this->url['host']);}// 요청 줄 복사하기protected function setLine($method){$this->line[0] = $method. ''' . $this->url['path'''?''. $this->url['query'''. '' . $this->version;}// 헤더 메시지protected function setHeader($headerLine){$this->header[] = $headerLine;// 'HOST: .$this->url['host']}// 주체 정보 쓰기protected function setBody($body){$this->body = (http_build_query($bo..

개발 꿀팁/PHP 2022.11.02

mysql 미제출 트랜잭션을 조회하는 sql 문

mysql 미제출 트랜잭션을 조회하는 sql 문, 미제출 트랜잭션 실행을 위한 SQL 문 찾기 mysql 트랜잭션을 켰다가 제출하지 않고 로그아웃하고 트랜잭션이 장시간 running 상태이고 프로세스가 Sleep 상태이기 때문에 후속적으로 다른 사물의 타임아웃이 실패할 수 있습니다. 흔한 원인 거래 과정에서 다른 비데이터베이스 작업이 수행되어 오랫동안 거래가 처리되지 않았습니다. 트랜잭션이 비정상적으로 처리되거나 구현 논리가 잘못되어 트랜잭션이 정상적으로 처리되지 않습니다. 네트워크, 데이터베이스 과부하 등 사물에 의해 실행되는 sql 문장을 찾으면 프로그램의 잘못된 코드에 쉽게 위치할 수 있다 조사 과정 모든 트랜잭션 보기 프로세스 정보 보기 프로세스 상태를 조회해보니 sleep에서 실행이 되지 않아 ..

개발 꿀팁/PHP 2022.11.01
반응형