저는 매우 큰 쿼리 문자열 (8000 raws, 백만 년에 한 번만 사용)을 작성하고 있습니다. 문자열이 작성되는 동안 추가되는 마지막 쉼표를 제거해야합니다.
내 코드를 살펴보십시오. 어떤 이유에서든 rtrim()
아무것도하지 않는 것처럼 보입니다 . 전달 된 문자열 rtrim()
은 완전히 그대로 반환됩니다.
(query_string 값의 사본이 필요한 경우 알려 주시면 업로드하겠습니다.)
public function sync_sites_table()
{
# $query_string = "TRUNCATE TABLE " . self::$table_name;
# $db->query($query_string);
$this->build_sites_object();
$query_string = "INSERT INTO `".self::$table_name . "` (`site_id`, `site_name`) VALUES \n";
foreach($this->sites_array as $key => $value)
{
$query_string .= "('".$key."','".$value."'), \n";
}
rtrim($query_string, ",");
global $db;
$db->query($query_string);
}
rtrim ()은 참조로 전달되지 않습니다. 변수에 할당해야하는 트리밍 된 값을 반환합니다.
$query_string = rtrim($query_string, ",");
그러나 더 깨끗한 대답은 다음과 같습니다.
$first = true;
foreach($this->sites_array as $key => $value)
{
if (!$first) { $query_string .= ', '; } else { $first = false; }
$query_string .= "('".$key."','".$value."') \n";
}
따라서 후행을 다듬을 필요가 없습니다. ,
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다