> 백엔드 개발 > PHP 튜토리얼 > thinkphp 및 php-preg_replace, 체인 쿼리 사용 시 문제

thinkphp 및 php-preg_replace, 체인 쿼리 사용 시 문제

WBOY
풀어 주다: 2016-08-08 09:21:00
원래의
1112명이 탐색했습니다.

이 기사에서는 thinkphp를 사용할 때 발생하는 문제에 대해 설명합니다.

1. 체인 쿼리 정보

$post_db = D('Post');

$total = $post_db;

$total=$총액-> where($where1);where($where

2

)$list=$총액-> 주문($order)->한도($limit)->select();

$count=$total->count ();

이때 $count의 값이 우리가 찾아낸 수량이 아니라 총액이며, 식$total=$

total

->where($where1)

$

전체

->where($where 1); 효과는 동일하며 $total의 값이 변경됩니다. 총계를 쿼리해야 하는 경우에만 다시 쿼리할 수 있습니다. 이는 thinkphp에서 매우 비인간적인 기능입니다. 2. PHP 기본 함수: preg_replace()요구 사항: preg_replace()를 통해 텍스트의 특정 값을 수정하고 싶습니다. 초기 사용은 다음과 같습니다. SQL 초기값을 백업할 때 왜 그런 요구사항이 있는 건가요? 데이터베이스 백업 시 로그 파일을 백업하고 일괄 백업을 해야 하는데 이때 로그가 늘어나서 자체 증분 값이 일치하지 않고 발생하는 현상이 발생합니다. 데이터 복원 시 문제 발생) Preg_replace('/AUTO_INCREMENT=(d+)/', 'AUTO_INCREMENT='."$1" + 2, $sql);우리는 AUTO_INCREMENT= 2로 대체되고 $1은 인식되지 않습니다. 그리고 'auto_increment ='. "$ 1"만 사용하면 $ 1이 인식될 수 있습니다. 그래서 문제가 발생하는 것 같습니다. preg_replace()의 두 번째 매개변수 "유사한 변수인데, 변수 사용에 문제가 있을 것 같아요. 구체적인 이유는 확인하지 못했습니다.

제가 해결한 방법은

if( preg_match('/AUTO_INCREMENT=(d+)/',$sql,$matches)){

                                                                                               그냥 계산해서 교체하고 구체적인 이유는 나중에 살펴보겠습니다. . 원리를 아는 학생이 있으면 메시지를 남겨서 3Q!

저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.

위 내용은 thinkphp와 php - preg_replace, 체인 쿼리를 사용할 때의 문제점을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿