Автордан:Әй, әннің сөзін алып тастай алмайсың! Бірақ оларды жоюға, жаңартуға немесе басқаларды енгізуге болады. Ең бастысы, сөздер базаға енгізіледі. Бүгін біз сізге MySQL-де деректер қалай жазылатынын және ән дыбысталуы үшін оны қалай дұрыс жасау керектігін айтамыз!
phpMyAdmin арқылы жазбаларды қосу
MySQL ДҚБЖ басқаруға арналған phpMyAdmin қабығы дерекқор кестелеріне жаңа жазбаларды қосу үшін «жеңіл» функционалдылықты жүзеге асырады. Қарапайымдылығының арқасында ол жасыл «манекелер» үшін де, «жалқау» кәсіпқойлар үшін де өте қолайлы.
Кестеге жаңа ақпаратты енгізу үшін бағдарламаға әкімші құқығымен кіру керек. Содан кейін сол жақтағы тізімдерден қажетті мәліметтер базасы мен кестені таңдаңыз. Содан кейін жоғарғы мәзірде «Кірістіру» тармағына өтіңіз.
Осыдан кейін MySQL дерекқорында жазба жасау үшін келесі терезеде барлық бағандар үшін «Мән» өрісін толтырып, төменгі жағындағы «OK» түймесін басыңыз.
Жоғарыдағы скриншотта өзгертілетін «Жануарлар» кестесі екі бағаннан (өрістерден) тұратынын көре аласыз: идентификатор және атау. Екінші бөлім әрбір бағанның түрін көрсетеді. Бізге тек атау өрісі үшін мән енгізу керек, өйткені идентификатор бағаны негізгі кілт болып табылады және кесте жасалған кезде автоматты өсімге орнатылған. Бұл id өрісінің мәні алдыңғы бүтін мәнге 1 қосу арқылы MySQL арқылы автоматты түрде жасалатынын білдіреді.
MySQL-дегі деректер жазбаларының қай өрісі негізгі кілт екенін білу үшін phpMyAdmin-де мәзірге (тізімде сол жақта таңдалған кестемен) жоғарғы мәзірдің «Құрылым» қойындысына өтіңіз. Мұнда барлық кесте өрістерінің сипаттамасы, олардың түрі және қосымша сипаттамалары берілген.
SQL сұраулары арқылы деректерді кірістіру
Бірақ phpMyAdmin - бұл жай ғана қабық және нақты әкімшілер MySQL серверімен Құрылымдық сұрау тілі арқылы «сөйлейді». Яғни, олар онымен SQL тілінде «сөйлейді». Біз нағыз кәсіпқой болуға ұмтылатындықтан, қарастырылып жатқан тақырып аясында SQL командаларын зерттеуге аздап кірісеміз. Міне, «SQL» өрісіне енгізген сұрау, сіз сол дерекқорды жасайсыз:
CREATE TABLE Animal (id MEDIUMINT NOT NULL AUTO_INCREMENT, аты CHAR(30) NO NULL, PRIMARY KEY (id));
CREATE TABLE Animal (id MEDIUMINT NO NULL AUTO_INCREMENT , атауы CHAR (30) NULL ЕМЕС, БАСТАУЫШ КҮЙЕУ (id)); |
Кестені жасап, деректерді MySQL дерекқорына жазғаннан кейін («Кірістіру» қойындысы арқылы) бағдарлама идентификатор мәні 1 болатын жолдың жануарларға қосылғанын және редактор терезесінде сәл төменірек екенін хабарлайды Қабық біз үшін жасалған және дерекқор серверіне жіберілетін сұрау коды көрсетіледі.
Сұраныс коды:
INSERT INTO `my_db1`.`animal` (`id`, `name`) VALUES (NULL, "Cat");
INSERT INTO ` my_db1 ` . ` жануар ` ( ` id ` , ` атауы ` ) VALUES ( NULL , «Cat» ); |
Оны толығырақ зерттейік. SQL тілінде INSERT операторы кестеге жаңа жолды енгізу үшін қолданылады. Ол серверге көрсетілген мәндерді (VALUES (NULL, 'Cat')) дерекқор кестесіне (my_db1 . animal) идентификатор және атау өрістерінде енгізу керектігін айтады.
Идентификатор бағанының сандық мәнін көрсетпейтінімізді, бірақ NULL екенін ескеріңіз, өйткені біз бұл өріс үшін автотолтыруды (автокөбейту) «қосқанбыз».
PHP көмегімен жазбаны қалай енгізуге болады
Біз қарастырғанның бәрі негізгі әрекеттің «прелюдиясы» ғана, онда «Мәртебелі» PHP серверлік бағдарламалау тілі сахнаға шығады. Оның арқасында MySQL МҚБЖ ретінде Интернетте кеңінен тарады.
Дүниежүзілік тордың көп бөлігі осы екі интернет технологиясының қосындысына құрылған. Қайда қарасаңыз да, сіз оларды барлық жерде таба аласыз: заманауи CMS-те, «үйде жазылған» қозғалтқыштарда және серверде.
PHP MySQL-ге деректерді жазу үшін көптеген кіріктірілген функцияларды қамтамасыз ететіні таңқаларлық емес. Бірақ біз олардың ең маңыздыларына тоқталамыз. Міне, жануарлар кестесіне жаңа «жануарды» қосатын код. Егер сіз жеткілікті түрде тырыссаңыз, осылайша бүкіл үй жануарларын жинай аласыз :)
$con_str=mysql_connect("localhost", "root", "", "db1"); if(mysql_connect("localhost","root"))( echo "Сәлем!"; ) mysql_select_db("db1",$con_str); $query_str="INSERT INTO `db1`.`animal` (`id`, `name`) VALUES (NULL, "ит")"; mysql_query($query_str); mysql_close();
$con_str = mysql_connect ("localhost" , "root" , "" , "db1" ); if (mysql_connect("localhost" , "root" ) ) ( жаңғырық "Сәлеметсіз бе!!" ; mysql_select_db("db1", $con_str); $query_str= «`db1`.`animal` (`id`, `name`) МӘНДЕРІНЕ ЕНГІЗУ (NULL, «ит»)»; mysql_query($query_str); mysql_close(); |
Бұл кодты PHP файлына қойып, сервер жағына қою керек.
mysql_connect() функциясы арқылы MySQL дерекқор серверіне қосыламыз. Функция аргумент ретінде хостты, ДҚБЖ пайдаланушы атын, құпия сөзді және қосылатын дерекқордың атын алады. Бізде бос құпия сөз бар, себебі біз жергілікті (клиент) құрылғыда орнатылған серверді пайдаланып жатырмыз.
PHP арқылы MySQL дерекқорына жазудың барлық сипатталған мысалдарын көрсету үшін біз Денвердегі «джентльмен жинағын» қолдандық. Оған жергілікті Apache сервері, MySQL сервері, phpMyAdmin және бағдарлама кодын жасауға және сынауға арналған бірнеше басқа пайдалы құралдар кіреді.
Содан кейін логикалық if блогында дерекқор серверіне қосылуды тексердік. Осыдан кейін mysql_select_db() функциясында біз қосылатын дерекқорды белгіледік. mysql_query() функциясын пайдаланып, $query_str айнымалысында жазылған SQL сұрауын іске қостық. Ал соңында орнатылған байланыс жабылды (mysql_close() функциясы). Енді, егер біз мал шаруашылығына (жануарлар үстеліне) қарасақ, онда біз жаңа «үй жануарларын» табамыз.
Оны MySQL-ге жазу үшін PHP «мейірімділікпен» барлық қажетті функциялар жинағын қамтамасыз етті. Бағдарлама кодында SQL-ді пайдалану кезінде жаңадан бастағандар күйіп қалатын басты нәрсе - сұраулардың дұрыс жазылмауы, синтаксистің бұзылуы және қашып кететін таңбалардың (тырнақшалардың) ауысуы.
Басыңызда артық «сұр» шаш пайда болмас үшін phpMyAdmin арқылы сұраудың дұрыс жазылуын тексерген дұрыс. Ол үшін SQL кодын бағдарлама редакторына орналастырып, оны іске қосыңыз. Егер бірдеңе дұрыс болмаса, қолданба ант бере бастайды, қызыл хабарламаны көрсетеді және қатенің орнын көрсетеді.
Көріп отырғаныңыздай, MySQL көмегімен сіз өзіңіздің жеке менеджерлеріңізді «жинақтауға» және кез келген «әннің» сөздерін дұрыс өзгертуге болады. Ал PHP MySQL дерекқорына жазу үшін өте қолайлы, сондықтан біз сізге осы «керемет» бағдарламалау тілімен «жақын» достық орнатуға кеңес береміз!
Бұл оқулықта деректерді дерекқорға PHP сценарийлерінен тікелей енгізу жолын қарастырамыз.
SQL көмегімен деректерді енгізу
Деректер қорын және кестелерді жасау үшін SQL-ді пайдаланатындай дерекқорға деректерді кірістіру үшін SQL пайдаланасыз. SQL сұранысының синтаксисі:
Кесте атауына ЕНГІЗУ (1-баған, баған 2, ...) VALUES(1-мән,мән 2, ...)
Көріп отырғаныңыздай, бір SQL мәлімдемесінде бірнеше бағандарды үтірмен бөлінген тізімде көрсету арқылы жаңартуға болады. Бірақ, әрине, сіз тек бір баған мен бір мәнді де көрсете аласыз. Осы SQL мәлімдемесінде айтылмаған бағандар бос қалады.
Мысалы: Кестеге жаңа адамды енгізу
Бұл мысалда біз 18-сабақтағы дерекқорды қолданамыз. Біз дерекқорға адамды енгізгіміз келеді делік. Бұл болуы мүмкін Гус қазтелефон нөмірімен 99887766 және туған күні 1964-04-20 .
SQL мәлімдемесі келесідей болуы мүмкін:
$strSQL = "INSERT INTO адамдар(Аты,Тегі,Телефоны,Туған күні) VALUES("Gus","Goose","99887766 ","1964-04-20"");
Көріп отырғаныңыздай, SQL мәлімдемелері өте ұзақ болуы мүмкін және ізін жоғалту оңай болуы мүмкін. Сондықтан SQL операторын сәл басқаша жазған дұрыс:
strSQL = "Адамдарды INSERT INTO("; strSQL = strSQL. «Аты, »; strSQL = strSQL. «Тек,» strSQL = strSQL. «Телефон», strSQL = strSQL. «туу)»; strSQL = strSQL. "VALUES ("; strSQL = strSQL . ""Gus", "; strSQL = strSQL. ««Қаз», »; strSQL = strSQL. ""99887766", "; strSQL = strSQL. ""1964-04-20""); mysql_query($strSQL) немесе die(mysql_error());
Мұнда SQL операторы сөйлемді шағын бөліктерге бөліп, оларды айнымалыға біріктіру арқылы құрастырылады. $strSQL.
Іс жүзінде бір немесе басқа әдісті қолданудың айырмашылығы жоқ, бірақ үлкен кестелермен жұмыс істеу кезінде «қадағалау» мүмкіндігі өте маңызды болады, сондықтан ең қолайлы әдісті таңдаңыз.
Дерекқорға Gus Goose енгізу үшін келесі кодты қолданып көрейік:
ДБ жаңартылды!
Пайдаланушы енгізген мәліметтерді дерекқорға сақтау
Сіз мұны істеу үшін 11-сабақтағыдай пішін жасауға болатынын және пішіндегі мәндерді SQL операторына енгізуге болатынын түсінген шығарсыз. Сізде қарапайым пішін бар делік:
Бұл пішін файлға жіберіледі insert.php, мұнда сіз, 11-сабақта көрсетілгендей, пішін мазмұнын сұрау арқылы пайдаланушы енгізуін ала аласыз. Бұл нақты жағдайда SQL мәлімдемесі келесідей болуы мүмкін:
strSQL = "INSERT INTO people(FirstName) мәндерін("" . $_POST["FirstName"] . "")"
Сол сияқты, сіз cookie файлдарынан, сұрау жолының сеанстарынан және т.б. деректерді сұрауға болады.
Бастауыштардың ең жиі кездесетін қателері
Бастапқыда дерекқорды жаңартуға әрекеттенген кезде қате туралы хабарлар алуыңыз мүмкін. Мәліметтер қорымен жұмыс істегенде қателерге мүлде жол берілмейді. Қате үтір дерекқор жаңартылмағанын білдіруі мүмкін және сіз қате туралы хабар аласыз. Төменде біз ең жиі кездесетін қателерді сипаттаймыз.
Деректер түрі жарамсыз
Бағанның деректері мен деректер түрі бір-біріне сәйкес келуі маңызды. Әрбір баған белгілі бір типтегі деректерді қамтуы мүмкін. Келесі скриншот біздің мысалдағы «адамдар» кестесінің деректер түрлерін көрсетеді.
Мысалы, деректер өрісіне мәтінді немесе санды кірістіруге әрекеттенсеңіз, қате жіберіледі. Сондықтан деректер түрін мүмкіндігінше дәл орнатыңыз.
Ең көп таралған деректер түрлері төменде келтірілген:
Мағынасы | Деректер түрі | Өлшем |
---|---|---|
CHR |
Мәтін немесе мәтін мен сандар комбинациясы. Сондай-ақ есептеулерде пайдаланылмайтын сандар үшін де пайдалануға болады (мысалы, телефон нөмірлері). | 255 таңбаға дейін - немесе "Ұзындықта" көрсетілген ұзындық |
МӘТІН |
Мәтіннің үлкен блоктары немесе мәтін мен сандар комбинациясы. | 65 535 таңбаға дейін |
INT |
Математикалық есептеулерге арналған сандық мәліметтер. | 4 байт |
КҮН |
ЖЖЖ-АА-КК пішіміндегі күндер | 3 байт |
TIME |
Сс:мм:сс пішіміндегі уақыт | 3 байт |
DATETIME |
ЖЖЖ-АА-КК сағ:мм:сс пішіміндегі күн мен уақыт | 8 байт |
Тырнақшалары немесе кері қиғаш сызықтары бар SQL мәлімдемелері
Жалғыз тырнақша ("), қос тырнақша (") немесе кері қиғаш сызық (\) таңбалары бар мәтінді кірістіруге әрекеттенсеңіз, жазба дерекқорға кірістірілмейді. Шешім дерекқор сұрауларына енгізілген кезде мнемонизациялануы тиіс таңбалардың алдындағы кері қиғаш сызықтарды ауыстыру болады.
Сабақ негізінде болады кері байланыс формасы, кез келген дерлік веб-сайтта қажет.======================================== ?>
Бірінші қадам: ішінде мәліметтер қорын құру MySQL
Ашылу phpMyAdmin(негізгі пакетке кіреді Денвер`a) және «деп аталатын дерекқорды жасаңыз. сынақ_базасы", кодтауды таңдаңыз" cp1251_general_ci".
======================================== ?>
Екінші қадам: ішінде кесте құру MySQLкөмегімен SQL сұрауы
Сіз, әрине, стандартты құралдарды пайдаланып кесте жасай аласыз phpMyAdmin, бірақ осылайша құрылатын кестенің құрылымы анық көрінеді.
деп аталатын кестені құру сынақ_кесте" және аталған алты өрісі бар:
«аты» - пайдаланушы аттары осында сақталады;
«электрондық пошта» - мұнда пайдаланушының электрондық пошта мекенжайлары сақталады;
«тақырып» - хабарлама тақырыбы осында сақталады;
«хабарлама» - хабарламалар осы жерде сақталады;
«деректер» - хабарлама жіберілген күн осында сақталады;
«id» - жазбаның сәйкестендіру нөмірі (жол), кілттік өріс.SQL сұрауы:
кестені жасау test_table(
id int(11) null емес auto_increment,
varchar атауы (255) нөл емес,
email varchar(255) нөл емес,
varchar тақырыбы (255) нөл емес,
хабарлама мәтіні нөл емес,
деректер күні нөл емес,
бастапқы кілт (идентификатор)
);======================================== ?>
Үшінші қадам: Пішін құру
index.html:
Пішін MySQL-де сақталған
MySQL жүйесінде деректер сақталатын пішіннің мысалы