44
қолданылады.
Жазбаларды
жаңарту:
update
Кесте
set(ӨрісАты1='мән1',
ӨрісАты1='мән2', ...) where Өрнек.
Өрнек өрнектерін қанағаттандыратын Кесте кестесінде барлық жазбалар
үшін көрсетілген өрістер сәйкес мәндерде орнатылады. Бұл команда егер бір
жазбаның барлық өрістерін емес, тек кейбіреулерін ғана жаңарту қажет болған
жағдайда қолданылады.
MySQL-дің тағы бір жиі қолданылатын мүмкіндігі – өрнекті
қанағаттандыратын жазбалар санын алу қарастырған жөн. Жалпы айтқанда,
бұны жасаудың бірнеше тәсілі бар. Соның бірі мынау:
– select count(if(Өрнек,1,NULL)) from Кесте.
Бұл мысалдың өзі MySQL тілі сипатталғанға қарағанда қаншалықты бай
екенін көрсетеді.
Бағанның бірегей мәндерін алу мәліметтер базасын қолданғанда, берілген
кестедегі бағанда қандай бірегей мәндері бар екендігін білген ыңғайлы болады.
Мысалы, егер кез-келген бір статистикалық кестеде әрбір жазбада, оның
құрамында адамдар жайында мәлімет болса, және онда Country (ел) өрісі бар
болса, онда кестеде 30 жасқа дейін өмір сүріп келген адамдардың барлығы қай
елде тұратынын табу үшін келесі сұранысты орындаймыз:
– select distinct ӨрісАты from Кесте where Өрнек.
Біздің жағдайда ӨрісАты=Country, ал Өрнек = age>=30. Бұл сұрау ізделіп
отырған алдерден тұратын бір бағаннан тұратын нәтижені тудырып береді.
Нәтиже – бұл жай ғана деректер жиыны, және оған кіретін жазбалар
санын mysql_num_rows() арқылы білуге болады. Мысалы, егер алдыңғы
мысалда кестеден таңдау кезінде 30 жасқан 10 адам бар болса, онда бізнәтиже
идентификаторында 10 «жолға» «сілтеме» аламыз.
Әрбір жазба – бұл өрістер мәндерінің тізімі, яғни, select ... from Кесте
сұрауында көпнүкте орнына (жұлдызша болса, барлық өрістер) көрсетілген реті
бойынша көрсетіледі. Осылайша, нәтиже – бұл өзіндік екіөлшемді массив:
бірінші индекс – жазба нөмірі және екіншісі – өріс аты.
Нәтиже параметрлері:
– int mysql_num_rows(int $result);
– mysql_num_rows() функциясы сұрау нәтижесінде жазбалар санын
қайтарады. Осылайша, функция «екіөлшемді масиив нәтижесінің» вертикальды
өлшемін анықтауға мүмкіндік береді;
– int mysql_num_fields(int $result).
Бұл функция нәтиженің бір жолына өрістер санын қайтарады, яғни, число
$result нәтижесінде бағандарды, сонымен қатар «екі өлшемді масиив
нәтижесінің» горизонтальді өлшемін анықтауға мүмкіндік береді.
Нәтиже өрісін алу:
– int mysql_result(int $result, int $row, mixed $field).
Функция $field өрісінің нәтижесін $row нөмірлі жолға қайтарады. $field
параметрі тек өріс атын беріп қоймай, сонымен қатар оның нөмірін –
позициясын, кесте құрғандағы «тұрған» бағанда. Дегенмен, мүмкіндігінше
45
барлық жерде өрістің атының өзін қолдануға тырысу керек.
Функция әмбебапты: оның көмегімен бүкіл нәтижені бір-бір ұяшық
бойынша «өтіп» шығуға болады. Мұны істеуге тиым салынбағанмен,
қолданбауға тырысу керек, өйткені mysql_result() біршама баяу жұмыс істейді.
Бірақ мәліметтер базасымен жұмыс бастамас бұрын онымен желілік
байланыс құру, және де қолданушы авторизациясын орындау қажет. Ол үшін
арнайы функция бар mysql_connect().
int mysql_connect([string $hostname] [,string $username][,string $password])
mysql_connect() функциясы MySQL мәліметтер базасымен желілік
байланысты құрады, ол $hostname (әдетте бұл localhost) атты хостта
орналасқан, және ашық байланыстың идентификаторын қайтарады. Келесі
жұмыстардың барлығы дәл осы идентификатормен жүргізіледі. Тіркелгенде
қолданушы $username аты және $password құпиясөзі (үнсіздік бойынша
берілген үрдісті қосқан қолданушы аты мен бос құпиясөз) көрсетіледі.
Сонымен қатар $hostname жолында хост_аты: порт (егер MySQL стандартты
емес басқа портқа қосылған жағдайда) форматты порт аты болуы мүмкін.
MySQL-серверімен байланыс сценарий жұмысының бітісімен не болмаса
mysql_close() функцисы шақырылғанда автоматты түрде жабылады. Егер сіз
сценарийдің бүкіл жұмысы барысында тек бір ғана мәліметтер базасымен
байланыс құруды жоспарласаңыз, онда сіз қайтарылған мәндерді сақтамасаңыз
да болады, және қалған функцияларды шақырғанда байланыс идентификаторын
көрсетпесеңіз болады.
int mysql_select_db(string $dbname [,int $link_identifier])
MySQL серверіне алғашқы сұранысты жібермес бұрын қандай мәліметтер
базасымен жұмыс істейтінімізді көрсетуіміз керек. Осы үшін сипатталған
функция
қажет.
Ол
РНР-ді
$link_identifier
байланысының
келесі
операцияларында $dbname мәліметтер базасы қолданылатынын ескертеді.
Егер MySQL-мен жұмыс барысында қателер туса (мысалы, сұраныста
жақшалар дұрыс қойылмаса немесе параметрлер жетіспесе), онда қате туралы
хабарлама және оның нөмірін келесі екі функция арқылы алуға болады.
int mysql_errno([int $link_identifier])
Функция соңғы тіркелген қатенің нөмірін қайтарады. $link_identifier
байланыс идентификаторын көрсетпесе болады, егер де сценарий жұмысы
барысында тек бір байланыс құрылған жағдайда.
string mysql_error([int $link_identifier])
Ол үшін арнайы жалғыз mysql_query() – функциясы деректер жиынын
нәтижелейтін идентификаторды қайтарады.
Есте болсын, біз нәтиже бірден клиентке жіберілмейтінін айтқан
болатынбыз? Міне, оған жету үшін идентификатор керек. Оны параметр
ретінде қабылдайтын және сол не басқа деректерді қайтаратын өте көп
функциялар бар. Олар туралы кейінірек сөз қозғаймыз.
int mysql_query(string $query [,int $link_identifier])
Бұл функциясы өзінің қолданысында әмбебап: ол MySQL-серверге $query
сұраныс жібереді және жауаптың немесе нәтиженің идентификаторын