рджреВрд╕рд░рд╛ CUBRID рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ред рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВ

рдмрд╣реБрддреЛрдВ рдиреЗ рд╢рд╛рдпрдж рд╕реБрдирд╛ рд╣реИ рдХрд┐ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ CUBRID рдиреЗ рдПрдХ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдЖрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рдХрд╛рдо рдЬрдорд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдкрд╣рд▓реЗ рд╣реА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛, рдореИрдВрдиреЗ рдХрд┐рд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдФрд░ DBMS CUBRID рдХрд╛ рдХреНрдпрд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реБрдИред

рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ (рд▓рдЧрднрдЧ)


рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдмрд▓реНрд╕ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрдбрд╝рд╛рдИ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрд▓рдо рд╣реЛрддреЗ рд╣реИрдВ:
VARCHAR, CHAR, STRING, INT, SMALLINT, BIGINT, NUMERIC, FLOAT, DOUBLE, DATE, TIME, DATETIME  TIMESTAMP. 

рдпрд╣ рдЧреИрд░-рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдПрдХ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ) рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдЙрддреНрддрд░ рдХреЛ рдкрд░рд┐рдгрд╛рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рд╡рд╣ рд╕рдм (рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдкреГрд╖реНрда рдкрд░ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрдврд╝реЗрдВ)ред

рдХрд╛рд░реНрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗрд╡рд▓ рдЖрд░рд╛рдо рд╕реЗ рдмрд╛рд╣рд░ рдЦрдбрд╝рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рддреЗрдЬ рд╣реИ рдФрд░ рд░реИрдо рдкрд░ рдХрдо рдорд╛рдВрдЧ рд╣реИ (рдмрд╣реБрдд рд╕рд╛рд░реЗ + рдореВрд▓реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдмрдб рдХреЛ рдЖрдБрдХрдбрд╝реЛрдВ рдХрд╛ рд░рдЦрд░рдЦрд╛рд╡ рд╕реМрдВрдкрд╛ред рдФрд░ рдореИрдВрдиреЗ рд╕рднреА рдбрд╛рд▓рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП on dublicate key update key update "count"="count"+1 рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдореИрдВрдиреЗ рд╣реИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдерд╛ (рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИрд╢рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА CUBRID рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХрд╛ рднреА рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ - рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреА рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдХреЛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЖрдк рд▓реЙрдХ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдЕрдЦрдВрдбрддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛрдЧрд╛)ред

рдирд┐рд░реНрдгрдп


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдзрд╛рди рдорди рдореЗрдВ рдЖрддрд╛ рд╣реИ:
 init(); foreach(list_tables() as $table){ process_table($table); } save_result(); 

рдпрд╣ рдХреЗрд╡рд▓ 4 рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ:
  1. init рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддрд╛ рд╣реИред
    рдирдореВрдирд╛ рдХреЛрдб:
     global $tempTableName,$conn; $tempTableName='"temp'.rand(0,32767).'"'; $q='CREATE TABLE '.$tempTableName.'( "val" character varying(255) NOT NULL, "count" bigint DEFAULT 1 NOT NULL, CONSTRAINT pk_temp_hash_val PRIMARY KEY("val") )'; cubrid_execute($conn,$q); 
  2. list_tables - рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
    рдЪреВрдБрдХрд┐ CUBRID MySql рдХреЗ рд╕рдорд╛рди рд╣реИ, рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ SHOW TABLES , рдЬреЛ рд╣рд╛рд▓рд╛рдБрдХрд┐ 8.3.1 рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, (рдкреНрд░рд▓реЗрдЦрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╣реИ), рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рднреА Cubrid WebQuery рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдЕрдзреАрд░ рдХреЗ рд▓рд┐рдП, рдореИрдВ рддреБрд░рдВрдд рдЖрд╡рд╢реНрдпрдХ sql рдХреНрд╡реЗрд░реА рдЙрджреНрдзреГрдд рдХрд░рддрд╛ рд╣реВрдВ:
      select class_name as table_name from db_class where class_type='CLASS' and is_system_class='NO' and class_name!='results' order by a asc; 

    рдФрд░ рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

    рдЖрдк cubrid_schema рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рд╡рд╣рд╛рдВ рдЖрдкрдХреЛ рдЕрднреА рднреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рд╕рдВрд╕реНрдХрд░рдгред
  3. process_tables рдкреВрд░реЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬреЛ рддрджрдиреБрд╕рд╛рд░ рдЖрдВрдХрдбрд╝реЗ рдмрдирд╛рддрд╛ рд╣реИред

    рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
    • select * + setFetchSize/cubrid_unbuffered_query
      рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ (рдХрд┐рд╕реА рдХреЛ рднреА рджрд┐рд▓рдЪрд╕реНрдкреА - рдЬрд╛рд╡рд╛ рд╕рдорд╛рдзрд╛рди рднреА рдкреЛрд╕реНрдЯ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИ) рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
    • рдЬрд╛рд╡рд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рд╕рд╛рде select * + рд╕реНрдерд┐рддрд┐ select * :
      where "int"<0 and counter("int") or length(translate("str",'0123456789',''))>0 and counter("str")
      рдЬрд╣рд╛рдБ counter db рдореЗрдВ рдорд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧрд▓рдд рджреЗрддрд╛ рд╣реИред
      рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рдореЗрд░рд╛ рд╕рд┐рд╕реНрдЯрдо рдЬрдо рдЧрдпрд╛ (рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдореНрдорд╛рдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛)ред
    • insert from select ... on dublicate key update "count"="count"+1
      рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдХрд┐ рдореИрдВ рдореБрдЦреНрдп рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд┐рддрд┐ рд░рдЦрддрд╛ рд╣реВрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ php рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рджреЛрд╣рд░реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЕрдкрдиреА рдмреИрд╕рд╛рдЦреА рдХреЗ рд╕рд╛рде рдЖрдирд╛ рдкрдбрд╝рд╛)ред

    рдЕрдм рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдХреЙрд▓рдо рдФрд░ рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
    • integer рдкреНрд░рдХрд╛рд░ (рдпрд╛ рджрд╢рдорд▓рд╡ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рджрд╢рдорд▓рд╡) рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд╛рдЗрди рдЪреЗрдХ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
    • рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЕрдВрдХреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдлрд┐рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
    • рдЕрдиреНрдп рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдЪреЗрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

    рд╕рд╡рд╛рд▓ рдпрд╣ рднреА рдЙрдарддрд╛ рд╣реИ - рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВред рдордВрдЪ рдкрд░ рд▓рдВрдмреА рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдирддреАрдЬреЗ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рд╕рдмрд╕реЗ рдЖрджрд░реНрд╢ рд╡рд┐рдХрд▓реНрдк рдХреНрдпреВрдмреНрд░рд┐рдб рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ (рдЬрдм рдпрд╣ рдЪрдпрди рдЕрдиреБрд░реЛрдз рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИ)ред

    рдЪреВрдВрдХрд┐ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрд▓рдо (рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдо) рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рднреА рд╢рд░реНрддреЛрдВ рдФрд░ "рдЙрдкрдирд╛рдо" рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рд╣реИ:
     $aliases=array( "STRING"=>"VARCHAR", 'CHAR'=>'VARCHAR', "INT"=>'INTEGER', "SHORT"=>'INTEGER', 'SMALLINT'=>'INTEGER', 'BIGINT'=>'INTEGER', 'DECIMAL'=>'NUMERIC', 'DEC'=>'NUMERIC', "REAL"=>'FLOAT', "DOUBLE PRECISION"=>'DOUBLE', ); // column process criteria and/or format $handlers=array( 'VARCHAR'=>array( 'select'=>'cast(%s as varchar(255))', 'criteria'=>"length(translate(%s,'0123456789',''))>0", ), 'INTEGER'=>array( 'select'=>'cast(%s as varchar(255))', 'criteria'=>"%s<0" ), 'FLOAT'=>array( 'select'=>"to_char(%s,'9.999999EEee')", ), 'DOUBLE'=>array( 'select'=>"to_char([double],'9.9999999999999999EEee')", ), 'DATE'=>array( 'select'=>"TO_CHAR(%s,'YYYY-MM-DD')", ), 'TIME'=>array( 'select'=>"TO_CHAR(%s,'HH24:MI:SS')", ), 'DATETIME'=>array( 'select'=>"to_char(%s,'YYYY-MM-DD HH24:MI:SS.FF')", ), 'TIMESTAMP'=>array( 'select'=>"to_char(%s,'YYYY-MM-DD HH24:MI:SS')", ), 'DEFAULT'=>array( 'select'=>'cast(%s as varchar(255))', ) ); 

    рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдВрддрд┐рдо рдЪрдХреНрд░:
     foreach(get_columns($q) as $column){ //echo "\tProcess column:".$column['column']."\n"; while(isset(self::$aliases[$column['type']])) $column['type']=self::$aliases[$column['type']]; // If column is decimal and has no precision then convert type to integer if($column['type']==='NUMERIC' && $column['scale']===0) $column['type']='INTEGER'; $criteria=(isset(self::$handlers[$column['type']])) ? self::$handlers[$column['type']]: self::$handlers["DEFAULT"]; $toSelect=(isset($criteria['select'])) ? $criteria['select'] : '%s'; // Depending of the column type build appropiate criteria $q='insert into '.$tempTableName.' ("hash","val") '. 'SELECT 1,'.$toSelect.' '. 'FROM `'.$qtable.'` '. 'where %s is not null and '.$criteria.' '. 'ON DUPLICATE KEY UPDATE "count"="count"+1'; $q=str_replace('%s','`'.$this->escape($column['column']).'`',$q); cubrid_execute($q); } 

  4. save_result - рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬрддрд╛ рд╣реИ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛ рд╣рдЯрд╛рддрд╛ рд╣реИ
    рд▓реЗрдЦ рдХреЛ рдЕрдзрд┐рднрд╛рд░ рдирд╣реАрдВ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ sql рдХреНрд╡реЗрд░реА рдЙрджреНрдзреГрдд рдХрд░рддрд╛ рд╣реВрдВ
     'replace into results ("userid","most_duplicated_value","total_occurrences") select \''.cubrid_real_escape_string($userid).'\',val,"count" from "'.$tempTableName.'" order by "count" desc limit 1' 

    replace рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХреЛрдб рдХрдИ рдмрд╛рд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред

рдирд┐рд╖реНрдХрд░реНрд╖


рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рднреЗрдЬрд╛ рдЬреЛ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ (рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╣реАрдВ рдерд╛, рдЕрд╢рдХреНрдд рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЬрд╛рдВрдЪ рднреА рдирд╣реАрдВ рдереА) рдФрд░, рдмрд╣реБрдд рд╣реА рдЕрдВрддрд┐рдо рд╕рдордп рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рджреМрд░рд╛рди рдШрди рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛, рдЬрд╛рд╡рд╛ рдореЗрдВ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдХреАред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрддрд░ рдкрд░, рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЕрднреНрдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореВрд▓реНрдпрд╡рд╛рди рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ CUBRID рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рдХреНрд╡реЗрд░реА рджреБрднрд╛рд╖рд┐рдпрд╛ рд╣реИ, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд░реИрдо рдФрд░ рдЕрдЪреНрдЫреЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ (рдЕрдм рдпрд╣ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╣рд╛рдпрддрд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ)ред рдЪреВрдВрдХрд┐ CUBRID рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрддреНрдкрд╛рджрдХ DBMS рдирд┐рдХрд▓рд╛, рднрд╡рд┐рд╖реНрдп рдореЗрдВ (рдЬрдм рдореБрдЭреЗ рдорд┐рд▓реА рдХреБрдЫ рдЧрд▓рддрд┐рдпрд╛рдБ рдареАрдХ рд╣реЛ рдЧрдИрдВ), рдореИрдВ рдЗрд╕реЗ рдЙрдЪреНрдЪ-рд▓реЛрдб рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛ред

рд╕рдВрджрд░реНрдн


  1. рдЗрд╕реЗ рдХреНрдпреВрд░рд┐рдб рдХрд░реЗрдВ - рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдкреГрд╖реНрдаред
  2. Cubrid рдпрд╣ рдордВрдЪ - рдмрд╛рдд рдкреГрд╖реНрдаред
  3. рдХреНрдпреВрдмреНрд░реАрдб рд╡реЗрдмрдХреНрд╡рд╛рдпрд░реА - рдХреНрдпреВрдмрд░реАрдб рдореИрдиреЗрдЬрд░ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рд╣реИрдВред
  4. рдХреНрдпреВрдмрд┐рдб рд╕рдорд╛рдзрд╛рди - рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди, рдирд┐рд╢реНрдЪрд┐рдд (рдЬрд╛рд╡рд╛ + php + рдХреЛрдб рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЖрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред


рдкреБрдирд╢реНрдЪ: рдпрд╣ рд╣рдм рдкрд░ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИ, рдореИрдВрдиреЗ рд╕рднреА рдирд┐рдпрдореЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реИ - рд▓рд┐рдЦреЛ, рд╕рд╣реА рд╣реИ, рдореИрдВ рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рд╕реАрдЦреВрдВрдЧрд╛)ред рдореИрдВрдиреЗ рд╡рд┐рд╖рдп рдХреЛ sql рдмреНрд▓реЙрдЧ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ (рдпрд╣ рдХреНрдпреВрдмреНрд░рд┐рдб рдХрдВрдкрдиреА рдмреНрд▓реЙрдЧ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛), рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
PS2: рдХрдВрдкрдиреА рдХреНрдпреВрдмреНрд░рд┐рдб рдХреЗ рд╣реИрдмрд░реВрд╕рд░ рдиреЗ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдмреНрд▓реЙрдЧ рдХреА рд╕рд▓рд╛рд╣ рджреАред рд╡рд╣рд╛рдВ рдЪрд▓реЗ рдЧрдПред
PS3: рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╡рд┐рдЬреЗрддрд╛ рдХрд╛ рдирд┐рд░реНрдгрдп рднреА рд╣рдм рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

Source: https://habr.com/ru/post/In123727/


All Articles