<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 코드 의이 부분은 텍스트의 내용과 관련이 없습니다.,예를 들어 목적 만</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"스크립트 실행을 시작하십시오...\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
유형 불일치가 발생합니다?보세요 mysqli_result::$lengths 사용할 때 어떤 유형의 문제에주의를 기울여야하는지
*/</span>
<span class="hljs-comment">/**
* mysqli_result::$lengths 배열입니다,결과 세트의 각 필드에 해당하는 데이터 길이가 포함됩니다.。
* 사용할 때주의를 기울이십시오,이러한 길이 값의 유형 및 사용 시나리오。
*/</span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"user"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"testdb"</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"연결이 실패했습니다: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT id, name, description FROM products"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> </span><span><span class="hljs-keyword">instanceof</span></span><span> mysqli_result) {
</span><span><span class="hljs-comment">// $lengths 정수 배열입니다,요소는 각 필드의 바이트 길이에 해당합니다.</span></span><span>
</span><span><span class="hljs-variable">$lengths</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>->lengths;
</span><span><span class="hljs-comment">// 예:길이 배열을 가져 와서 인쇄하십시오</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"필드 길이 배열 유형: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">gettype</span></span><span>(</span><span><span class="hljs-variable">$lengths</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"필드 길이 내용:\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$lengths</span></span><span>);
<span class="hljs-comment">/*
* 유형 질문의 핵심 요점:
* 1. $lengths 배열입니다,그리고 각 요소는 정수입니다(int)。
* 2. 이 길이는 바이트입니다,문자열 길이 함수에 유의하십시오 strlen 얻을 수있는 문자 수는 다릅니다.,특히 멀티 바이트 문자。
* 3. $lengths 배열은 만 사용됩니다 mysqli::store_result 또는 기본적으로 결과를 버퍼링 할 때 유효합니다.,사용 mysqli_use_result 언제 사용할 수 없습니다。
* 4. 방문하기 전에 확인하십시오 $result 효과적입니다 mysqli_result 물체,그렇지 않으면 $lengths 존재 나 오류가 없습니다。
*/</span>
</span><span><span class="hljs-comment">// 进一步예:사용长度信息处理数据</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$field</span></span><span> => </span><span><span class="hljs-variable">$value</span></span><span>) {
</span><span><span class="hljs-variable">$idx</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_search</span></span><span>(</span><span><span class="hljs-variable">$field</span></span><span>, </span><span><span class="hljs-title function_ invoke__">array_keys</span></span><span>(</span><span><span class="hljs-variable">$row</span></span><span>));
</span><span><span class="hljs-variable">$len</span></span><span> = </span><span><span class="hljs-variable">$lengths</span></span><span>[</span><span><span class="hljs-variable">$idx</span></span><span>] ?? </span><span><span class="hljs-literal">null</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"전지 '<span class="hljs-subst">{$field}</span></span></span><span>' 값 길이(바이트)~을 위한:</span><span><span class="hljs-subst">{$len}</span></span><span>\n";
</span><span><span class="hljs-comment">// 주의를 기울이십시오 $len 是바이트长度,문자열 문자 수와 반드시 같은 것은 아닙니다</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"문자열 문자 수:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
}
</span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">free</span></span><span>();
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"쿼리가 실패했거나 결과가 실패했습니다。\n"</span></span><span>;
}
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 코드 의이 부분은 텍스트의 내용과 관련이 없습니다.,예를 들어 목적 만</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"스크립트 실행 종료。\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
관련 태그:
mysqli_result