<p class="wp-block-paragraph">à¸à¸±à¸à¸«à¸² regular expression is too large à¹à¸ PHP à¸à¸±à¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸«à¸¥à¸²à¸¢à¸à¸£à¸à¸µ à¹à¸à¹à¸ªà¸²à¹à¸«à¸à¸¸à¸«à¸¥à¸±à¸à¸à¸à¸ Warning à¸à¸±à¹à¸ มาà¸à¸²à¸à¸à¸²à¸£à¸à¸µà¹à¸¡à¸µà¸à¸£à¸´à¸¡à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸¡à¸²à¸à¹à¸à¸´à¸à¹à¸ à¸à¸µà¹à¸à¹à¸à¸à¸à¸³à¹à¸à¸à¹à¸²à¸à¸à¸£à¸°à¸à¸§à¸à¸à¸²à¸£ regular expression à¹à¸à¸£à¸¹à¸à¹à¸à¸à¸à¹à¸²à¸ ๠à¹à¸à¹à¸ à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥ à¸à¸²à¸£à¸à¸£à¸§à¸à¸ªà¸à¸à¸£à¸¹à¸à¹à¸à¸à¸à¸µà¹à¸¡à¸¥ à¹à¸à¹à¸à¸à¹à¸</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph"><strong>วิà¸à¸µà¹à¸à¹à¸à¸±à¸à¸«à¸² regular expression is too large</strong></p>



<p class="wp-block-paragraph">วิà¸à¸µà¹à¸à¹à¸à¸±à¸à¸«à¸²à¸à¸·à¸ à¸à¸²à¸£à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸°à¸à¸³à¹à¸à¸à¸£à¸°à¸¡à¸§à¸¥à¸à¸¥à¸à¸à¸à¹à¸à¹à¸à¸ªà¹à¸§à¸ ๠à¹à¸à¸à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸à¸°à¸¢à¸à¸à¸±à¸§à¸à¸¢à¹à¸²à¸ à¸à¸²à¸£à¸à¸³à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸ Array à¸à¸³à¸à¸§à¸ 15,000 à¹à¸à¸§ à¹à¸à¹à¸²à¹à¸ where in à¹à¸à¸à¸³à¸ªà¸±à¹à¸ MySQL </p>



<p class="wp-block-paragraph">à¸à¹à¸²à¹à¸£à¸²à¹à¸à¸µà¸¢à¸ query à¸à¸£à¸ ๠à¹à¸à¸à¸à¸µà¹</p>



<pre class="wp-block-code"><code lang="sql" class="language-sql">SELECT `uid` FROM `stock` WHERE uid IN(0, 1, 2, 3, 4, 5, 6, 7, 8, 9.... +15,000 </code></pre>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">à¸à¸¥à¸¥à¸±à¸à¸à¹à¸à¸µà¹à¹à¸à¹à¸à¹à¸à¸°à¹à¸à¸´à¸ Warning à¹à¸à¸à¸à¸µà¹</p>



<pre class="wp-block-code"><code lang="php" class="language-php">Message: preg_match(): Compilation failed: regular expression is too large at offset 93928</code></pre>



<p class="wp-block-paragraph">วิà¸à¸µà¹à¸à¹à¸à¸±à¸à¸«à¸²à¸à¸·à¸à¹à¸«à¹à¹à¸£à¸²à¹à¸à¹à¸ Array หลัà¸à¹à¸à¹à¸ Array 2 มิà¸à¸´à¹à¸à¸à¸£à¸´à¸¡à¸²à¸à¹à¸à¹à¸² ๠à¸à¸±à¸ à¸à¹à¸§à¸¢à¸à¸³à¸ªà¸±à¹à¸ array_chunk à¹à¸¥à¸°à¸à¹à¸à¸¢ ๠query à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸¡à¸¥à¸³à¸à¸±à¸ à¹à¸à¸¢à¸à¸±à¹à¸à¸à¹à¸§à¸¢à¸à¸³à¸ªà¸±à¹à¸ MySQL OR à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¸à¸²à¸£à¸à¸´à¸§à¸£à¸µà¹à¸à¸·à¸</p>



<pre class="wp-block-code"><code lang="sql" class="language-sql">SELECT <code>uid</code> FROM <code>stock</code> WHERE ( <code>uid</code> IN(0, 1) OR <code>uid</code> IN(2, 3) OR <code>uid</code> IN(4, 5))</code></pre>



<p class="wp-block-paragraph">à¸à¸±à¸§à¸à¸¢à¹à¸²à¸ code à¸à¸²à¸£à¹à¸à¹à¸à¸²à¸£à¸à¸£à¸´à¸à¸ªà¸³à¸«à¸£à¸±à¸ PHP MySQL</p>



<pre class="wp-block-code"><code lang="php" class="language-php">$uid_list = array(1,2,3,4,5,6,7,8,9,10);
$uid_list = array_chunk($uid_list,2); // à¹à¸à¹à¸à¸³à¸ªà¸±à¹à¸ array_chunk à¹à¸à¹à¸ array à¹à¸à¹à¸ 2 มิà¸à¸´ à¹à¸¥à¸°à¸¡à¸´à¸à¸´à¸¥à¸° 2 à¹à¸à¸§
$query_string = '';
$last_loop = count($uid_list); // หา loop รà¸à¸à¸ªà¸¸à¸à¸à¹à¸²à¸¢
$start_loop = 0;
foreach($uid_list as $uids)
{
 $start_loop++;
 $uids = implode(',',$uids);
 if($start_loop == $last_loop){ // loop รà¸à¸à¸ªà¸¸à¸à¸à¹à¸²à¸¢à¹à¸¡à¹à¸à¹à¸à¸à¸¡à¸µ OR
 $query_string .= ' uid IN('.$uids.')';
 }else{
 $query_string .= ' uid IN('.$uids.') OR';
 }
}
$query = $this->db->query('SELECT uid FROM stock WHERE ('.$query_string.')');</code></pre>



<p class="wp-block-paragraph">à¸à¸²à¸à¹à¸à¹à¸à¸à¹à¸²à¸à¸à¸ à¹à¸¡à¸·à¹à¸à¸¥à¸à¸ run à¸à¸³à¸ªà¸±à¹à¸à¸à¹à¸à¸°à¹à¸«à¹à¸à¸§à¹à¸²à¹à¸¡à¹à¸à¸ Warning à¹à¸¥à¹à¸§ à¹à¸à¸£à¸²à¸°à¹à¸à¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥ à¹à¸¡à¹à¹à¸«à¹à¸¡à¸µà¸à¸à¸²à¸ bytes à¹à¸«à¸à¹à¹à¸à¸´à¸à¹à¸ à¸à¹à¸à¸à¸à¸³à¹à¸à¹à¸²à¹à¸à¸à¸³à¸à¸²à¸à¹à¸à¸ªà¸¹à¸à¸£ <strong>regular expression</strong> รูà¸à¹à¸à¸à¸à¹à¸²à¸ ๠</p>

วิธีแก้ปัญหา regular expression is too large

วิธีแก้ปัญหา-regular-expression-is-too-large
