рд▓рдЧрднрдЧ рдбреЗрдврд╝ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ред рд▓рдЧрднрдЧ рдбреЗрдврд╝ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ OOP рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ MVC рдбрд┐рдЬрд╝рд╛рдЗрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╕рдВрдЪрд╛рд░ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рд╕рдордп рдореБрдЭреЗ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рддрд╛ рдерд╛ред
рдХрд╛рд░реНрдп 2 рдЪрд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦреЗрдВ
- рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбрд▓ рд╡рд░реНрдЧ рд▓рд┐рдЦреЗрдВ
рдкрд╣рд▓рд╛ рдХрд╛рд░реНрдп рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣рд▓ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рд┐рдВрдЧрд▓рдЯрди рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рджреВрд╕рд░реЗ рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдордп рдЪрд╛рд╣рд┐рдП рдерд╛ред рдЖрдзрд╛рд░ рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рдорд╛рдЪрд╛рд░ рдкреНрд░рдмрдВрдзрди рдореЙрдбреНрдпреВрд▓ рдерд╛ред рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдорд╛рдирдХ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИ: рдЪрдпрди, рдирд┐рд░реНрдорд╛рдг, рд╡рд┐рд▓реЛрдкрди рдФрд░ рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХрд╛ рдЕрджреНрдпрддрдиред рдореЙрдбрд▓ рд╡рд░реНрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдз рдмрдирд╛рддрд╛ рд╣реИред рд╕рд╛рде рд╣реА рдпрд╣ рд╡рд░реНрдЧ
рдбреАрдПрдордПрд▓ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛрдб рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕рд╛рд░ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рд╕рднреА рдмрдЪреНрдЪреЗ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдбреАрдПрдордПрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдЪрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЕрдореВрд░реНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред
рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдЕрдореВрд░реНрдд рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред рдЬрдм рдореИрдВ рд╕рдорд╛рдЪрд╛рд░ рдореЙрдбрд▓ рдХреА рдХрдХреНрд╖рд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреБрдЫ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред
GetRecords рд╡рд┐рдзрд┐
рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдЙрди рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬреЛ рд╣рдорд╛рд░реА рдПрд╕рдХреНрдпреВрдПрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реИрдВред
- $ рдХреНрдпрд╛ - рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдХрд╛ рдПрдХ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
- $ рдЬрд╣рд╛рдБ - рд╕рд░рдгреА ('рдлрд╝реАрд▓реНрдб' => рд╕рд░рдгреА ('рд╕рд╛рдЗрди', 'рд╡реИрд▓реНрдпреВ')) рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рд╣рдпреЛрдЧреА рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдХрд╣рд╛рдБ рдФрд░ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рд╡рд┐рдзреЗрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- $ рд╕реАрдорд╛ - рдПрдХ рд╕рд░рдгреА ('рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд┐рдХреЙрд░реНрдб', 'рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛') рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд╛рдмрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рд╣рдпреЛрдЧреА рд╕рд░рдгреА рдЧреБрдЬрд░рддреА рд╣реИред рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рд╣рдореЗрдВ рдкреГрд╖реНрдард╛рдВрдХрд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ
- $ рдЖрджреЗрд╢ - рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рд╕рд░рдгреА ('рдлрд╝реАрд▓реНрдб' => 'рд╕реЙрд░реНрдЯ рдкреНрд░рдХрд╛рд░')ред рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдХреЙрд▓рдо рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- $ рдЬреНрд╡рд╛рдЗрди - рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рд╕рд░рдгреА ('рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдХрд╛рд░', рд╕рд░рдгреА ('Table1', 'Table2'), рд╕рд░рдгреА ('Alias1', 'Alias2'), рд╕рд░рдгреА ('field1', 'field2'))ред рд╕рдВрдЪрд╛рд░ рдкреНрд░рдХрд╛рд░: LEFT, INNER, RIGHT, OUTER; рддрд╛рд▓рд┐рдХрд╛ 1 рдФрд░ рддрд╛рд▓рд┐рдХрд╛ 2: рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; Allias1 рдФрд░ Allias2 рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдирд╛рдо рд╣реИрдВ; рдлрд╝реАрд▓реНрдб 1 рдФрд░ рдлреАрд▓реНрдб 2 рдХреНрд░рдорд╢рдГ рд╣реИрдВред рдкреАрдХреЗ рдФрд░ рдПрдлрдХреЗ рдЯреЗрдмрд▓
- $ degub - рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╡рд░реНрдЧ рдЧреБрдгреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдирд╛рдИ рдЧрдИ sql рдХреНрд╡реЗрд░реА рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╕рд╛рде рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ рд╣рдо PDO рдореЗрдВ рддреИрдпрд╛рд░ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
AddRecord рд╡рд┐рдзрд┐
рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
- $ рдбреЗрдЯрд╛ - рдлрд╛рд░реНрдо рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА: 'рдлрд╝реАрд▓реНрдб' => 'рдореВрд▓реНрдп', рдЬрд┐рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдПрдЧрд╛
рдбрд┐рд▓реАрдЯрдХрд╛рд░реНрдб рд╡рд┐рдзрд┐
рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
- $ рддрд╛рд▓рд┐рдХрд╛ - рдЙрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдЬрд╣рд╛рдВ рд╕реЗ рдбреЗрдЯрд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рд╕реЗрдЯрд░рдХрд╛рд░реНрдб рд╡рд┐рдзрд┐
рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
- $ рдХреНрдпрд╛ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдлреЙрд░реНрдо рдореЗрдВ рд╕рд░рдгреА рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ: SET рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'рдлрд╝реАрд▓реНрдб' => 'рдорд╛рди'
рдХреНрд╡реЗрд░реА рд╡рд┐рдзрд┐
рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдЧреИрд░-рдорд╛рдирдХ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ sql рдХреНрд╡реЗрд░реА рдкрд╛рд╕ рдХрд░реЗрдВред
- $ sql - рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП sql рдХреНрд╡реЗрд░реА
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ DML рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ 4 рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ: SELECT, INSERT, UPDATE, DELETEред рдЗрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдХрдИ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
1) рдЪрдпрдирд┐рдд рдХреНрд╡реЗрд░реА рдХреЛ рдЗрд╕рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: WHAT, JOIN, WHERE, ORDER, LIMIT, GROUP, HAVINGред
2) INSERT рдЕрдиреБрд░реЛрдз: рдХреНрдпрд╛
3) рдЕрджреНрдпрддрди рдХреНрд╡реЗрд░реА: рдХреНрдпрд╛, рдХрд╣рд╛рдБ
4) DELETE рдХреНрд╡реЗрд░реА: рдЬрд╣рд╛рдВред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рдЗрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рдЧреЛрдВрдж рджреЗрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЗрди рднрд╛рдЧреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рддрд░реАрдХреЗ рдмрдирд╛рдП рдЧрдП рдЬреЛ рди рдХреЗрд╡рд▓ рдиреНрдпреВрдЬрд╝ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рднреА рдЖрдо рд╣реИрдВред
рдЗрди рддрд░реАрдХреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдЬрд╛рдБрдЪ рд╡рд┐рдзрд┐
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЗрдирдкреБрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕реЗ рдпрд╛ рддреЛ рдЪрдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдЕрджреНрдпрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
$ рдХреНрдпрд╛ рдкреИрд░рд╛рдореАрдЯрд░
рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд
рд╣реИред protected function checkWhat($what) { if (is_array($what)) { foreach ($what as $k=>$v) { if (!is_numeric($k))
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╕рд░рдгреА рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛, рд╕рд░рдгреА рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдФрд░ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рднрд╛рдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ред
CheckJoin рд╡рд┐рдзрд┐
$ рдЬреНрд╡рд╛рдЗрди рдкреИрд░рд╛рдореАрдЯрд░
рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд
рд╣реИ ред рдРрд╕реА рд╕реНрдерд┐рддрд┐ рднреА рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдлрд┐рд░ $ рдЬреНрд╡рд╛рдЗрди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ($ join1, $ join2, ....., $ joinN)
рдЬрд╛рдБрдЪ рд╡рд┐рдзрд┐
рд╡рд┐рдзрд┐ рдЕрдиреБрд░реЛрдз рдХреЗ WHERE рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреА рд╣реИред $ рдЬрд╣рд╛рдВ рдкреИрд░рд╛рдореАрдЯрд░
рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд
рд╣реИред protected function checkWhere($where) { if (!is_null($where) && is_array($where)) { foreach ($where as $k=>$v) { $part=$k.$v[0];
рдЬрд╛рдБрдЪ рд╡рд┐рдзрд┐
рдПрдХ рд╕реАрдорд╛ рдХреНрд╡реЗрд░реА рдХреА рд╡рд┐рдзреЗрдп рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
protected function checkLimit($limit) { $res=false; if (is_array($limit) && count($limit)>0) { $res=" LIMIT ".$limit['start']; if (isset($limit['count']) && $limit['count']!=='')
CheckOrder рд╡рд┐рдзрд┐
ORDER рдкреАрдврд╝реА рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
protected function checkOrder($order) { if (is_array($order) && count($order)>0) { foreach ($order as $row=>$dir) { $res[]=$row." ".$dir; } return "ORDER BY ".implode(",",$res); } else { return false; } }
рдпрд╣ рд╕рднреА рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреБрд░реЛрдз рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрдм рд╕реЗ рдЪреВрдВрдХрд┐ рд╣рдо рдХреНрд╡реЗрд░реА рдХреЗ рдРрд╕реЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ WHERE рдФрд░ WHAT рдЬреИрд╕реЗ рддреИрдпрд╛рд░ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкреАрдбреАрдУ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдФрд░ рд╡рд┐рдзрд┐ рд▓рд┐рдЦреА
рдЪреЗрдХрдкрд░рд╛рдо рд╡рд┐рдзрд┐
рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рджреЛ рдРрд░реЗ рд╣реИрдВред WHAT рдФрд░ WHERE рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреАред
protected function checkParams($what,$where) { if (!isset($what) || !is_array($what)) { $params=$where; } else if (!isset($where) && !is_array($where)) { $params=$what; } else { $params=array_merge($what,$where); } return $params; }
SQL рдХреНрд╡реЗрд░реА рдмрдирд╛рдиреЗ рдореЗрдВ рдЕрдЧрд▓рд╛ рдЪрд░рдг sql рдХреЛрдб рдХреА рдЕрдВрддрд┐рдо рдкреАрдврд╝реА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ 4 рд╡рд┐рдзрд┐рдпрд╛рдБ рдмрдирд╛рдИ:
рдЗрди рддрд░реАрдХреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
ReadySelectSQL рдореЗрдердб
рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ getRecords рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред рдпрд╣ $ рдХреНрдпрд╛ рд╣реИ, $ рдХрд╣рд╛рдВ, $ рд╕реАрдорд╛, $ рдЖрджреЗрд╢, $ рдЬреБрдбрд╝рдирд╛, $ рдбрд┐рдмрдЧред рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рд╡рд░реНрдгрди
рдпрд╣рд╛рдБ рдХрд┐рдпрд╛ рдЧрдпрд╛
рд╣реИред protected function prepareSelectSQL($what=array('*'),$where=NULL, $limit=NULL, $order=NULL,$join=NULL,$debug=false) { $what=$this->checkWhat($what); $where=$this->checkWhere($where); $limit=$this->checkLimit($limit); $order=$this->checkOrder($order); $j=$this->checkJoin($join); $sql="SELECT ".$what['column']." FROM `".$this->table."` `tb` ".$j." ".$where['column']." ".$order." ".$limit; $params=$this->checkParams($what['params'],$where['params']); if ($debug)
рддреИрдпрд╛рд░ рдХрд░реЗрдВ InertSQL рд╡рд┐рдзрд┐
рдпрд╣ рд╡рд┐рдзрд┐ рд╕рд░рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзреЗрдп рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдПрдХ рд╕реАрдорд┐рдд рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
protected function prepareInsertSQL($data,$table,$debug=false) { $params=$values=$column=array(); foreach ($data as $c=>$p) { $column[]=$c;
ReadyDeleteSQL рд╡рд┐рдзрд┐
рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдзред рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдХреЗ рд▓рд┐рдП рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдЧрдИ рд╣реИред
protected function prepareDeleteSQL($table,$where,$debug=false) { $where=$this->checkWhere($where); $sql="DELETE FROM `".$table."` ".$where['column']; $params=$this->checkParams($what,$where['params']); if ($debug) { $this->sql=$sql; $this->params=$params; } return array('sql'=>$sql,'params'=>$params); }
рддреИрдпрд╛рд░ рдХрд░реЗрдВ
рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП sql рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред
protected function prepareUpdateSQL($table,$what,$where,$debug=false) { $what=$this->checkWhat($what); $where=$this->checkWhere($where); $sql="UPDATE `".$table."` SET ".$what['column']." ".$where['column']; $params=$this->checkParams($what['params'],$where['params']); if ($debug) { $this->sql=$sql; $this->params=$params; } return array('sql'=>$sql,'params'=>$params); }
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдФрд░ рдбреАрдПрдордПрд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдиреАрдЪреЗ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдХреЛрдб рд╣реИред
рд╕рд╛рд░ рд╡рд░реНрдЧ DataBase <? abstract class DataBase { static private $_db=NULL; public $sql=''; public $params=array(); private function __construct() { return false; } private function __clone() { return false; }
рдЕрдм рд╕рдорд╛рдЪрд╛рд░ рдореЙрдбрд▓ рд╡рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдпрд╣ рд╡рд░реНрдЧ рдореВрд▓ DataBase рд╡рд░реНрдЧ рдФрд░ рд╕реНрдерд┐рд░ getObject рд╡рд┐рдзрд┐ рдХреЗ рд╕рднреА рд╕рд╛рд░ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реИред рдирдП рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдЪрд╛рд░ рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рдзрд┐ рдмрдирд╛рдИ рдЧрдИ рдереАред рдпрд╣рд╛рдБ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
$news=News::getObject()->getRecords(params);
рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ sql рдХреНрд╡реЗрд░реА рдЬрдирд░реЗрдЯрд░ рдХреЛ рдмреБрд▓рд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PDO рдХреЛ рдЕрдВрддрд┐рдо рдХреНрд╡реЗрд░реА рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рд╕рдорд╛рдЪрд╛рд░ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╡рд░реНрдЧ рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИред
рд╡рд░реНрдЧ рд╕рдорд╛рдЪрд╛рд░ <? class News extends DataBase { public $table='news';
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдЕрднреА рднреА GROUP BY рдФрд░ HAVING рдХреА рдкреАрдврд╝реА рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдирд╣реАрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдорд┐рд▓рд╛ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рдмрдВрдзрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреАрдПрдордПрд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдореИрдВ рдЧрд┐рддреБрдм рдкрд░ рдПрдХ рднрдВрдбрд╛рд░ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВред
рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд╕реБрдЭрд╛рд╡ рд╕реБрдирдХрд░ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреАред