Internet Derazalar Android
Kengaytirmoq

PHP misol mysql bilan. PHP MySQLI bilan ishlash asoslari

2011 yilda PHP MySQL qo'llab-quvvatlashi tugashi munosabati bilan PDO yoki PDO ma'lumotlar bazalar bilan ishlash uchun to'liq ishlatiladi Mysqli.. Ularda yaxshiroq funktsiyalar mavjud (MySQL-ga qaraganda) va OOP (ob'ektga yo'naltirilgan interfeys) API. Qaysi biri yaxshiroq, bu boshqa maqola uchun mavzu, biz MySQLI bilan ishlash asoslarini hal qilishga harakat qilamiz. Shuning uchun, biz ulanishga o'tmasdan, biz ulanishga o'tamiz (Select), Qo'shish, Qo'shish va PHP-mysqli orqali yangilanishlar (o'chirish) va o'chirish (o'chirish) va o'chirish (o'chirish) va o'chirish (o'chirish) va o'chirish (o'chirish) va o'chirish (o'chirish) va o'chirish (o'chirish) va o'chirish (o'chirish) va o'chirish (o'chirish) va o'chirish (o'chirish) Umid qilamanki, ushbu maqola php mysqli bilan ishlashda yuzaga keladigan muammolarni hal qilishda foydali bo'ladi.

Mysqli o'rnatish

PHP-ni / PHP-ni ishlatishda 5.3.0 +, MySqli standartda mavjud; Kektar versiyalar uchun uni mavjud qilish uchun siz php_mysqli.dll dlll-ni fayl ichida yoqishingiz kerak php.ini. va "Php.ini" ni uzaytirishni qayta tiklash \u003d php_mysqli.dll. Linuxda MySQLII php5 mysql to'plamini o'rnatishda avtomatik ravishda o'rnatiladi. Windows-da o'rnatish va Linux tizimlarida ko'proq ma'lumotni topish mumkin.

Ma'lumotlar bazasi ulanish

MySqli ma'lumotlar bazasiga ulanishning ikkita usulini taklif qiladi: protsessual va ob'ektga yo'naltirilgan. Ob'ektga yo'naltirilgan foydalanish tavsiya etiladi. Protsessual (eski) mysqlga o'xshaydi, shuning uchun u yangi boshlanuvchilar uchun afzal bo'ladi, ulardan foydalanish tavsiya etilmaganligini eslash afzal bo'ladi.

PHP.

// protsessual uslub $ MySqli \u003d Mysqli_connect ("Xost", "Foydalanuvchi nomi", "Parol", "Parol", "Ma'lumotlar", "Ma'lumotlar", "Database_name"); // ob'ektga yo'naltirilgan uslub (tavsiya etiladi) $ mysqli \u003d Yangi MySQLI ("Xost", "parol", "parol", "Ma'lumotlar", "Ma'lumotlar", "Database_name");

Quyida ob'ektga yo'naltirilgan usul ma'lumotlar bazasi bilan aloqa ochilishi. Ushbu usul quyidagi misollarda qo'llaniladi.

PHP.

conth_Error) ("Die (" Xato: ("Xato: MySQLI-\u003e Conne_Rerno." $ Mysqli-\u003e ulanish_error);)?

Tanlash (Select) natijada askari massiv shaklida seriyali seriyalar

mySqli_fchch_asc (): Quyidagi kodda, natijada aniqlanish oralig'ida assotsiatsion massiv shaklida olinadi. Qaytarilgan massivlar ma'lumotlar bazasidan olingan qatorlar mavjud, u erda ustun nomlari ichki ma'lumotlarga kirish uchun ishlatiladigan kalit bo'ladi. Quyida ko'rsatilgandek, ma'lumotlar HTML jadval sifatida ko'rsatiladi.

PHP.

conc_error) ("O'ldirildi (" Xato: (". $ Mysqli-\u003e uct_rerrno". " "; $ ($ Sv \u003d $ Natija-\u003e Fetch_ascoc (bosma) "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish"";) Chop etish"
"$ Svuct [" ID "]."". $ Sour [" Mahsulot_Code "].". "$ Rous [" Mahsulot_Name "]."". $ ROUT [" Mahsulot_desc "]."". $ Sv [" Narx "]."
"Natija bilan bog'liq xotirani ozod qilish $ 1. Bepul (). // yaqin ulanish $ MySqli-\u003e yaqin ();?)

Tanlash (Selection) Lavlus formasi (assistativ, normal yoki ikkalasi)

Fetch_array (): MySqli_fetch_row va Mysqli_fetchch dotsining qo'shma funktsiyasi bilan qatorni qaytaradi. Ushbu xususiyat mysqli_fetch_row () funktsiyasining kengaytirilgan versiyasi; Ma'lumotga kirish uchun siz ikkala satr va raqamlarni ham ishlatishingiz mumkin.

PHP.

conc_rrore) ("O'ldirildi: (" Xato: Mysqli-\u003e ulanish-ni tanlang. " mahsulotlar narxi "); Bosib chiqarish " fetch_array ()) (Chop etish "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish"";) Chop etish"
"$ Svuct [" ID "]."". $ Sour [" Mahsulot_Code "].". "$ Rous [" Mahsulot_Name "]."". $ ROUT [" Mahsulot_desc "]."". $ Sv [" Narx "]."
"Natija bilan bog'liq xotirani ozod qilish $ 1. Bepul (). // yaqin ulanish $ MySqli-\u003e yaqin ();?)

Natijada (Select) Natijada ob'ekt sifatida tanlang

fetch_Objece (): Natijada ob'ekt shaklida belgilangan, siz MySQLI Forch_OBeve () dan foydalanishingiz kerak. Ob'ektning sifatlari natijasida olingan belgilardagi dala nomlarini namoyish etadi.

PHP.

conc_rrore) ("O'ldirildi: (" Xato: Mysqli-\u003e ulanish-ni tanlang. " mahsulotlar narxi "); Bosib chiqarish " "; Vaqt ($ Sv \u003d $ Natija-\u003e Fetch_Object (Chop etish) "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish"";) Chop etish"
"$ come-\u003e id.""$ Come-\u003e mahsulot_code.""$ come-\u003e mahsulot_name.""$ Come-\u003e Mahsulot_desc.""$ swe-\u003e narxi."
"; // yaqin ulanish $ mysqli-\u003e yaqin ();?\u003e

Select (Select) Yagona qiymat

Siz ma'lumotlar bazasidan fayllar bazasidan (kameron nayza usuli) yordamida bitta qiymatni olishingiz mumkin.

PHP.

conth_Error) ("Die (" Xato: (". $ Mysqli-\u003e uct_namror \u003d $ mysqli-\u003e so'rovi (" MySQLE- so'rovi 1 ") -\u003e Fetch_Object () -\u003e Mahsulot_Name; $ $_name-ni bosib chiqarish; // chiqish qiymati $ MySQLI-\u003e yaqin (); ?\u003e

Jadvaldagi qatorlar sonini olib tashlang (hisoblang)

Ba'zida siz stoldagi qatorlar sonini, ayniqsa sahifalarni raqamlashda aniqlashni bilishingiz kerak.

PHP.

conth_Error) ("Die (" Xato: (". $ Mysqli-\u003e uct_errornoe)" $ mysqli-\u003e uct_error). Foydalanuvchilar tomonidan); $ con_total_rows \u003d $ natijalari-\u003e Fetch_Row (); // o'zgaruvchan $ mysqli-\u003e yaqin (); ?\u003e

(Tayyorlangan bayonotlar)

tayyorlangan davlatlar. - xuddi shu shablon tomonidan qurilgan takrorlanadigan so'rovlarning ketma-ket bajarilishini tezlashtirishga imkon beradigan maxsus DBMS vositasi.

MySqli xususiyatlaridan biri bu allaqachon yozilgan shablonlardan foydalanish qobiliyati: ya'ni, so'rov bir marta yozish uchun etarli, shundan so'ng uni bir necha marta takrorlash mumkin. Yozma shablonlardan foydalanish katta jadvallar va murakkab so'rovlar uchun ishlashni yaxshilaydi. Har bir so'rovni tahlil qilish uchun zararli kodni oldini olish uchun zararli kodni alohida amalga oshiring.

Quyidagi kod ma'lumotlar bazasidan ma'lumotlarni olish uchun shablonni (tayyorlangan bayonot) ishlatadi. Agregat ? SQL so'rovi markerning rolini o'ynaydi va parametr bilan almashtiriladi, o'z navbatida, satr, butun son, ikki yoki blob bo'lishi mumkin. Bizning holatimizda, bu $ $ qidiruv_Producte.

PHP.

$ qidirish_producuct \u003d "pd1001"; // Mahsulot ID // $ so'rovingizni yarating $ \u003d 'ID, Product_Code, Product_desc, mahsulot_code \u003d'? $ Bitori \u003d $ mysqli-\u003e tayyorlang (so'rovlar); // markerlar uchun parametrlar, qaerda (s \u003d satr, i \u003d butun son, b \u003d blast) $ Biting-\u003e Bind_param ("S", $ qidirish_Poducty); // so'rov $ Bayonot -\u003e ijro etuvchi (); // Big Big GateSolls $ Bayonot -\u003e "; // Fetch yozuvlari ($ Bayonot -\u003e\u003e Fetche (Fetche (Chop etish) "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish"";) Chop etish"
"$ Id.""$ Mahsulot_code.""$_desc.""$ Narx."
"; // yaqin ulanish $ Bayonot -\u003e Yopish ();

Bir nechta parametrlar bilan bir xil so'rov:

PHP.

$ qidirish_id \u003d 1; $ qidirish_producuct \u003d "pd1001"; $ So'rov \u003d "ID raqamini, mahsulot_code, mahsulot_desc, ID \u003d? Va mahsulot_code \u003d?" -Ni tanlang. $ Bitori \u003d $ mysqli-\u003e tayyorlang (so'rovlar); $ Bayonot -\u003e Bind_param ("bu", $ qidirish_id, $ qidirish_Poducty); $ Bayonot -\u003e ijro etilishi (); $ Bayonot -\u003e Bind_RECT ($ id, $_code, $ Mahsulot_desc, $ Narx); Bosib chiqarish " "; Vaqt ($ Bayonot -\u003e\u003e\u003e\u003e\u003e\u003e) (Chop etish) "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish" "; Chop etish"";) Chop etish"
"$ Id.""$ Mahsulot_code.""$_desc.""$ Narx."
"; // yaqin ulanish $ Bayonot -\u003e Yopish ();

Yozuvlarni kiritish (kiritish)

Quyidagi yozuv jadvalga yangi qatorni kiritadi.

PHP.

real_cappi_string ("p1234"). "" $ Mahsulot_name \u003d "" ". $ MySqli-\u003e Real_Cappie \u003d" "" ""; // mysqli uni kiritish so'rov $ CNERERSER_ROVE \u003d Mahsulotlar_Name, $ ($ insert_rowe) (Chop etish_Rece) (Chop etish_Rece) "$ Mysqli-\u003e insert_id".
"Boshqa (" xato: ("Xato:" (". $ MySQLI-\u003e errno-\u003e xato." $ MySQLI-\u003e Xato);)?

Quyidagi parchalar andozalar (tayyorlangan bayonotida) orqali bir xil qiymatlarni kiritadi. Aytganimizdek, shablonlar SQL in'ektsiyasiga nisbatan juda samarali. Yuqoridagi misol uchun ulardan foydalanish optimal variantdir.

PHP.

// Ma'lumotlar bazasiga kiritilishi kerak bo'lgan qiymatlar $ 1.code \u003d "p1234"; $ Mahsulot_Name \u003d "42 dyuymli televizor"; $ WADE_PRICE \u003d "600"; $ So'rov \u003d "Mahsulotlarga kiritish (mahsulot_code, mahsulot_name, narx) qiymatlari (? ,Mi?)"; $ Bitori \u003d $ mysqli-\u003e tayyorlang (so'rovlar); // markerlar uchun parametrlar, qaerda (s \u003d satr, i \u003d butunlay, b \u003d blast) $ Biting -\u003e BluS_Code, $ Mahsulot_PRECE); Agar ($ Bayonotlar -\u003e) (Chop etish "Muvaffaqiyat! So'nggi yozuv yozuvining identifikatori quyidagilar:" $ Bisc_id. "
";) Boshqa (" xato: ("Xato:" Mysqli-\u003e errno-\u003e xato "." $ MySQLI-\u003e Xato);) Bayonot -\u003e Yopish ();

Qo'shish (kiritish) bir nechta yozuvlarni kiriting

Bir qator qatorlarning harakatlanishi bir vaqtning o'zida bir qator ustun qiymatlarini o'zgartirish orqali amalga oshiriladi, bu erda har bir satrning har bir satrini boshqa me'yorlardan ajratish va boshqa me'yorlardan ajratish kerak. Ba'zan siz qancha yozuvlar kiritilgan, yangilangan yoki olib tashlanganini bilishingiz kerak, chunki siz MySqli_Fined_rows-dan foydalanishingiz mumkin.

PHP.

// mahsulot 1 $ Mahsulot_code1 \u003d "" "". "$ MySqli-\u003e Real_Cappi_string (" P1 ")." "; $ Mahsulot_name1 \u003d ". $ MySQLI-\u003e Real_Cappie_string (" Google Nexus ")." "; $ Mahsulot_Price1 \u003d "". "$ MySQLI-\u003e Real_cappi_string (" 149 ")." "; // Mahsulot 2 $ Mahsulot_code2 \u003d "" .. $ MySqli-\u003e Real_Cappie_string ("P2"). ""; $ Mahsulot_name2 \u003d "". "$ MySqli-\u003e Real_CAPE_string (" Apple iPad 2 ")." "; $ Mahsulot_Pric2 \u003d "". "$ MySqli-\u003e Real_Cape_string (" 217 ")." "; // Mahsulot 3 $ Mahsulot_code3 \u003d "" .. $ MySqli-\u003e Real_Cappie_string ("P3"). ""; $ Mahsulot_Name3 \u003d "". $ MySQLI-\u003e Real_cappi_string ("Samsung Galaxy Note"). ""; $ Mahsulot_Price3 \u003d "". "$ MySQLI- real_cappi_string (" 259 ")." "; // Bir nechta qatorlarni kiritish $ $ \u003d $ mysqli-\u003e Mahsulot_crode2, $ Mahsulot_crode2, $ Mahsulot_Code3, $ Mahsulot_Name3, $ Mahsulot_Pree3) ) "); Agar ($ ulang) (// MySqli_Fleced_rows-dan foydalanilganligi) (// qaytarilgan umumiy yozuvlar "Muvaffaqiyat!" Mysqli-\u003e ta'sir ko'rsatdi. "
";) Boshqa (" xato: ("Xato: (". $ Mysqli-\u003e errno-\u003e xato. "$ Mysqli-\u003e Xato";)

Yozish (o'chirish) ni yangilash / o'chirish

Printsipni yangilash va o'chirish Yozuvlarni o'chirish. MySQL yangilanishiga so'rovni almashtirish kifoya yoki o'chirish uchun etarli (tushunmayapman).

PHP.

// mysqli yangilash so'rovi \u003d $ mysqli-\u003e Qo'rinlash ("52 dyuymli televizorlar", mahsulot_code \u003d "323343" ID \u003d 24 " // mysqli delete so'rovi // $ 1 $ mysqli-\u003e so'rov ("ID \u003d 24"); Agar ($ natijalari) ("Print" Muvaffaqiyat! Yangilangan / o'chirilgan ";" Dime "Xato:" $ MySQLI-\u003e Xato; "

Tayyorlangan bayonotlar

Quyida shablonlar (tayyorlangan shtatlar) yordamida qayd yozuvini yangilash misoli quyida keltirilgan.

PHP.

$ Mahsulot_Name \u003d "52 dyuymli televizor"; $ Mahsulot_code \u003d "9879798"; $ pri_id \u003d 24; $ So'rov \u003d "Yangilanish mahsulotlarini yangilash Mahsulot_name \u003d?, Mahsulot_code \u003d? $ Bitori \u003d $ mysqli-\u003e tayyorlang (so'rovlar); // markerlar uchun parametrlar, qaerda (s \u003d ip, i \u003d butunlay, b \u003d blast) $ ("SSI", $ Cent_Code, $ topishingiz mumkin bo'lgan. agar ($ natijalari) ("Muvaffaqiyat! yangilangan"; Bosma "Xato: (" MySQLI-\u003e xato "xatosi:" $ mysqli-\u003e xatosi;)

Eski yozuvlarni olib tashlash

Serverdagi barcha yozuvlar serverda 1 kundan ko'proq vaqtni o'chiradi; Kunlar soni belgilanishi mumkin.

PHP.

// mysqli delete so'rovi $ $ \u003d $ mysqli- (Hozir () - 1 kun interval) "); agar (Bosib chiqarish" Muvaffaqiyat! Bir kunlik eski yozuvlarni o'chirib tashladi (Chop etishda xato): (". $ MySQLI- Xulosa

Shubhasiz, MySqli MySQL kengayishi pHP standartidan ancha yaxshi, garchi ularning ishlarining tamoyillari o'xshash bo'lsa-da. Umid qilamanki, yuqorida keltirilgan ma'lumotlar kelajakda loyihalarni yaratish va uzatish paytida foydali bo'ladi. Qulaylik uchun namuna fayllarini yuklab olish uchun quyidagilar amalga oshirildi. Buni yuklab olish tugmachasini bosish orqali amalga oshirish mumkin.

Rnr bilan MySQL ma'lumotlar bazasi bilan ishlash

Leksiya. Tayyorlangan prokhorov vs


1. PNP stsenariylarini MySQL jadvallari bilan ulash

MySQL ma'lumotlar bazasi bilan RNR tomonidan ishlashga imkon beradigan eng ko'p ishlatiladigan xususiyatlarni ko'rib chiqing.

RNR va MySQL o'zaro aloqada bo'lganida, dastur DBMMS tomonidan funktsiyalar to'plamiga ta'sir qiladi.

1.1 Serverga ulanish. Funktsiya mysql_connect.

Ma'lumotlar bazasi bilan ishlashdan oldin siz u bilan tarmoq ulanishini, shuningdek foydalanuvchiga ruxsat berishingiz kerak. Bu mening mysql_connect () funktsiyasi.

mysqlonnect resursi (])

Ushbu xususiyat $ MySQL ma'lumotlar bazasiga ulanish $ Server Xostda joylashgan (Standart loalhost, i.e. joriy kompyuter) ni o'rnatadi va ochiq ulanish identifikatorini qaytaradi. Barcha qo'shimcha ishlar ushbu identifikator bilan amalga oshiriladi. Ushbu identifikatorni qabul qilgan barcha funktsiyalar (deskriptor) tanlangan ma'lumotlar bazasini noyob bo'ladi. Ro'yxatdan o'tishda foydalanuvchi nomi $ login va parolsiz parol (joriy jarayon ishlaydigan foydalanuvchi nomi): ildiz va bo'sh parolni tuzatish paytida:

$ dbasestwd \u003d "; // paroli

// ogohlantirishni namoyish qilish

echo ("

");

$ $ Sentyabr, $ dbuushwd do'koni server nomi, foydalanuvchi nomi va parol.

1.2-ni serverga ulanish. Funktsiya mysql_cloz

MySQL serveriga ulanish ssenariy oxirida avtomatik ravishda yopiladi yoki mysql_closoz funktsiyasini chaqirganda

bool Mysql_cloz ()

Ushbu xususiyat MySQL serveriga ulanishni buzadi va operatsiyaning muvaffaqiyatli bajarilishi bilan amalga oshiriladi va boshqacha holatda. Funktsiya MySQLE_Connect funktsiyasi tomonidan qaytarilgan argument sifatida ma'lumotlar bazasi ulanishining tavsifi.

$ dobalction \u003d "logist"; // server nomi

$ dbuser \u003d "ildiz"; //Foydalanuvchi nomi

$ dbasestwd \u003d "; // paroli

// Ma'lumotlar bazasi serveriga ulanish

// Funktsiyani chaqirishdan oldin xatolik belgisini bostiring

$ dbcnx \u003d @ mysql_connect ($ doboding, $ dbuser, $ dbupaswd);

agar (! $ dbcnx) // Agar belgi 0 bo'lsa, ulanish o'rnatilmagan bo'lsa

// ogohlantirishni namoyish qilish

echo ("

B endi ma'lumotlar bazasi serveri mavjud emas, shuning uchun sahifaning to'g'ri ko'rinishi mumkin emas.");

agar (MySQL_CLOLOLOS ($ dbcnx)) // ulanishni buzing

echo ("ma'lumotlar bazasiga ulanish to'xtatiladi");

echo ("u ulanishni yakunladi");

1.3 Ma'lumotlar bazasini yaratish. Ma'lumotlar bazasi xususiyatini yaratish

Buyruq - ma'lumotlar bazasini yaratish faqat server ma'muri va aksariyat xostingda uni bajarish mumkin emas:

Ma'lumotlar bazasi nomi asosida yarating

Ismni bog'lash nomi bilan yangi ma'lumotlar bazasini yaratadi.

Ushbu xususiyat bilan ishlash misoli:

@MYSQL_Quary ("Ma'lumotlar bazasini yaratish $");

SQL buyruqlarini o'z ichiga olgan chiziqlar chegaralari sifatida hamma joyda ("SQL-buyruq") apostrofes-dan foydalanish tavsiya etiladi. Bu sizning $ o'zgaruvchi tasodifan interpolatsiya qilinmasligini ta'minlaydi (i.e. u uning qiymati bilan almashtirilmaydi) va skriptlarning xavfsizligi oshadi.

Ma'lumotlar bazasi ma'lumotlar bazasi ekipaj buyrug'i faqat juda superuser-dan foydalanish mumkin va aksariyat xosting foydalanuvchilariga oddiy foydalanuvchi o'qish mumkin emas. U faqat server ma'muri uchun mavjud.

Eksperimentlar uchun buyruq satridan SQL so'rovini amalga oshirish orqali testras ma'lumotlar bazasini yarating. Buning uchun MySQL tizimiga kiring va buyruq satrida MySQL-ni kiriting:

mySQL\u003e Ma'lumotlar bazasi testubasini yarating;

Shundan so'ng, siz terish kerak:

mySQL\u003e testradan foydalaning;

Ma'lumotlar bazasi yaratildi:



1.4 Ma'lumotlar bazasini tanlang. Funktsiya mysql_elect_db.

MySQL serveriga birinchi so'rovni yuborishdan oldin, qaysi ma'lumotlar bazasini ishlamoqchi ekanligimizni aniqlashingiz kerak. Buning uchun mysql_elece_db funktsiyasi quyidagicha mo'ljallangan:

bool MySQL_Select_db (Strige DataBabe_name [, Resurs $ LinkFifeFion])

U $ 3 DATUS-ni amalga oshirish uchun qo'shimcha operatsiyalarda $_atchecte ulanishidan foydalanish uchun PHP-ni xabardor qiladi.

Ushbu funktsiyadan foydalanish SQL so'rovi, I.E. MySQL_Select_DB funktsiyasi qo'shimcha ish uchun ma'lumotlar bazasini tanlaydi va barcha SQL so'rovlari tanlangan ma'lumotlar bazasiga tegishli ma'lumotlar bazasi va keyingi SQL so'rovlarini tanlang. Funktsiya ma'lumotlar bazasi tomonidan tanlangan ma'lumotlar bazasining nomini argumentlar va resurs ulanishining tavsifi sifatida qabul qiladi. Funktsiya muvaffaqiyatli operatsiya va yolg'on bilan amalga oshiriladi - aks holda:

// Ma'lumotlar bazasi bilan ulanish kodi

agar (! @mysql_elect_db ($ dbname, $ dbcnx))

// ogohlantirishni namoyish qilish

echo ("

B endi ma'lumotlar bazasi mavjud emas, shuning uchun to'g'ri sahifa displeyi mumkin emas.");

1.5 Qayta ishlash xatolari

Agar xatolar MySQL bilan ishlashda xatolar bo'lsa (masalan, ko'rsatmalar muvozanatlanmagan yoki parametrlar etarli emas), so'ngra quyida tavsiflangan ikkita funktsiyadan foydalanib olinishi mumkin.

Ehtiyotkorlik bilan va ushbu funktsiyalarni o'z vaqtida ishlatish juda muhim, chunki aks holda skriptlarning chiqarilishi yanada murakkablashishi mumkin.

● Funktsiya:

int mysql_errno ()

so'nggi yozuvlar sonini qaytaradi. Agar skriptda ishlaydigan vaqt davomida faqat bitta ulanish o'rnatilgan bo'lsa, siz $ lotchefier ulanish identifikatorini aniqlay olmaysiz.

● Funktsiya:

ip mysql_Error ()

raqamni qaytaradi, lekin xato xabari matnini o'z ichiga olgan satr. Noto'g'ri maqsadlarda qo'llash qulay. Odatda, mysql_error dizayn yoki o'lish (), masalan:

@MYSQLE_CONON ("LOGHTHST", "foydalanuvchi", "parol")

yoki o'lish ("Ma'lumotlar bazasiga ulanishda xato:" .Mysql_Error ());

Odatdagidek operator standart ogohlantirishni bostirish uchun ishlatiladi, bu xato yuz berishi mumkin.

MySQL funktsiyalarida RNR ogohlantirishining so'nggi versiyalarida sukut bo'yicha ro'yxatdan o'tmagan.

1.6 MySQL-ga ulanish. Fayl ( config.php. )

Odatda saytda bir vaqtning o'zida bir nechta skriptlar mavjud, ular bir xil ma'lumotlar bazasiga kirishingiz kerak.

MySQL-ga ulanish uchun mas'ul kod alohida faylda ajratish tavsiya etiladi va keyin kerakli skriptlarga ulanishni istalgan skriptlarga ulash tavsiya etiladi.

Urug'lar $ (Config.php) ni ulash uchun funktsiyalarni (Config.php) qilish uchun funktsiyalarni joylashtirish, u erda $ dbuser foydalanuvchi nomi, parol $ DBSINTWD va ism $ dbname ma'lumotlar bazasi nomi:

Config.php listing:

//conFig.Php Fayl kodini o'z ichiga olgan fayllar parametrlari server va ma'lumotlar bazasini tanlash bilan bog'liq parametrlar

// xato xabarlarini brauzerga ko'rsatadi

$ dobalction \u003d "logist"; // server nomi

$ dbname \u003d "BAUS NOMI" / DATAZASAS nomi: yaratilgan yoki allaqachon mavjud

$ dbuser \u003d "ildiz"; // Ma'lumotlar bazasi foydalanuvchi nomi

$ dbasestwd \u003d "; // paroli

// Ma'lumotlar bazasi serveriga ulanish

// Funktsiyani chaqirishdan oldin xatolik belgisini bostiring

[Elektron pochta bilan himoyalangan]_Connect ($ dobalizatsiya, $ dbuser, $ dbupasswd);

agar (! $ dbcnx) // Agar 0 bo'lsa, ma'lumotlar bazasi serveriga ulanish o'rnatilmagan bo'lsa

// ogohlantirishni namoyish qilish

echo ("

Hozirgi vaqtda ma'lumotlar bazasi serveri mavjud emas, shuning uchun sahifaning to'g'ri ko'rinishi mumkin emas.

");

// $ dbname ma'lumotlar bazasini yarating - bu faqat superuser qila oladi

// Agar ma'lumotlar bazasi allaqachon mavjud bo'lsa, tanqidiy bo'lmagan xato bo'ladi

@Mysql_quareri ("DBNAME 'mavjud bo'lmasa, ma'lumotlar bazasini yarating";

// Ma'lumotlar bazasi bilan ulanish kodi: Biz yangi yaratilgan ma'lumotlar bazasini yoki mavjud ma'lumotlar bazasini birlashtiramiz

// Funktsiyani chaqirishdan oldin xatolik belgisini bostiring

agar ( [Elektron pochta bilan himoyalangan]_Select_db ($ dbname, $ dbcnx)) // Agar 0 bo'lsa, ma'lumotlar bazasi ulanishi o'rnatilmagan

// ogohlantirishni namoyish qilish

echo ("

Hozirgi vaqtda ma'lumotlar bazasi mavjud emas, shuning uchun sahifaning to'g'ri ko'rinishi mumkin emas.

");

// xabarni ko'rsatadigan kichik yordamchi funktsiya

// Ma'lumotlar bazasi so'rovi xatoligi yuzaga kelgan xato haqida

funktsiya Poterror ($ xabar)

echo ("");



2. Ma'lumotlar bazasi so'rovlarini bajaring

2.1 Jadvalni yaratish. Funktsiya Jadvalni yaratish:

Jadval jadvalining nomini yarating (Namepol turi, Namepol turi)

Ma'lumotlar bazasidagi ushbu buyruq faqat o'z nomlari (ismlari) va belgilangan turlar bilan belgilangan ustunlar (maydonlar) bilan yangi jadval yaratadi. Stolni yaratgandan so'ng, ushbu buyruqda keltirilgan maydonlardan tashkil topgan yozuvlarni qo'shish mumkin bo'ladi.

Test_1.PP ro'yxati. Ma'lumotlar bazasida yangi jadval yaratadigan dastur:

"Config.php"; // Server va ma'lumotlar bazasini tanlash uchun ulanish

mysql_quareri ("agar odamlar mavjud bo'lmasa, jadval yarating

iD Int Auto_increment Asosiy kalit,

yoki o'ling ("MySQL xatosi:" .Mizql_Error ());



Ushbu skript ikki sohada yangi odamlar jadvalini yaratadi. Birinchi maydonda st turi (butun son) va ismning identifikatori mavjud. Ikkinchi - matnni (matnli satr) va ism nomini kiriting.

Agar jadval mavjud bo'lsa, dizayn yoki o'lish () dizayni ishlaydi.

Agar agar u ko'rsatilgan bo'lsa, ixtiyoriy iborasi Agar ko'rsatilgan bo'lsa, agar belgilangan ism bilan jadvalda bo'lgan bo'lsa, agar ma'lumotlar bazasida jadval mavjud bo'lsa, xato xabarini yaratmasligi kerak.

MySQL - ma'lumotlar bazalarining turlaridan biridir. MySQL - bu turli xil foydalanuvchilar ulanishlari mumkin bo'lgan server.

Internetga ulanganda siz login va parolni, shuningdek ulanadigan server nomini kiritasiz? MySQL bilan ishlashda bir xil tizim ishlatiladi.

Yana bir nuqta: Ma'lumotlar bazasi nima? Jadvallarga asoslangan holda remusa. Mashhur Excel elektron jadvallari Microsoft-dan muharriri aslida ma'lumot bazalarining muharriri hisoblanadi.

MySQL serveriga ulaning

MySQL serveriga ulanish uchun PHPda MySqli_connect () funktsiyasi qo'llaniladi. Ushbu xususiyat uchta dalilni oladi: Server nomi, foydalanuvchi nomi va parol.

MySqli_connect () funktsiyasi ulanish identifikatorini qaytaradi, u o'zgaruvchida saqlanadi va ma'lumotlar bazalari bilan ishlash uchun ishlatiladi.

MySQL serveriga ulanish kodi:

$ havola \u003d Mysqli_connect ("logist", "ildiz", ");

Bunday holda men mahalliy kompyuterda denwere-da ishlayman, shuning uchun xost nomi loalhdir, ildiz foydalanuvchi nomi va parol yo'q.

MySQL bilan ishlashni tugatgandan so'ng, ulanish ham yopilishi kerak. Ulanishni yopish uchun mysqli_closoz () funktsiyasi ishlatiladi. Misolni kengaytirish:

$ havola \u003d Mysqli_connect ("logist", "ildiz", "); Agar (! $ havolasi) ("xato") bo'lsa; mysqli_cloz ($ bog'ich);

Bu erda biz haqiqat uchun identifikatorni tasdiqladik, agar ulanishda biron bir narsa noto'g'ri bo'lsa, unda dastur bajarilmaydi, o'lish () funktsiyasi uning bajarilishini to'xtatadi va brauzerga xato xabarini ko'rsatadi.

Ulanish xatolari

Ulanishni tekshirish uchun quyidagi funktsiyalar qo'llaniladi:

  • mySqli_connect_errno () - oxirgi ulanish urinishining xato kodini qaytaradi. Hech qanday xato nolga qaytmaydi.
  • mySqli_connect_Error () - MySQL serveriga oxirgi ulanish xatosining tavsifini qaytaradi.
("Xost", "Logist" ni aniqlang; ("Db_User", "Ildiz") ni belgilang; ("Db_password", ") ("DB", "Tester") ni belgilang; $ Link \u003d Mysqli_connect (xost, db_usser, db_password, db); / * Tekshirish * / if (mysqli_connect_ingno ('ulanmadi:%-ulana olmadi: PresFF ("% s \\ n" ni bosing. , mysqli_gost_info ($ bog'ich));)

Mysqli_gost_info () funktsiyasi ishlatilgan ulanish turini o'z ichiga olgan satrni qaytaradi.

E'tibor bering, ta'riflash buyrug'idan foydalanib, barcha ulanishlarni doimiy ravishda saqlab qoldim. Katta loyihalarni yozayotganda va MySQL serveriga ulansangiz, ulanish sozlamalarini alohida faylda saqlash va uning funktsiyasidan foydalanib uni kiritish qulay.

Ma'lumotlar bazasini tanlang

MySQL serverida bir nechta ma'lumotlar bazalari bo'lishi mumkin. Birinchidan, biz zarur bo'lgan poydevorni ishlashni tanlashimiz kerak. PHP-da, buning uchun mysqli_connect () funktsiyasida boshqa parametr mavjud - ma'lumotlar bazasining nomi mavjud.

Men kompyuterimda phpMyAdmin nomidagi sinovchi orqali yaratdim. Unga ulaning:

$ Havolasi \u003d Mysqli_connect ("loalhost", "ildiz", "", "," Tester "); Agar (! $ havolasi) ("xato") bo'lsa; Mysql_cloz ($ havola);

Shunday qilib, biz ma'lumotlar bazasini ishlashni tanladik. Ammo biz bilganimizdek, ma'lumotli ma'lumotlar bazasi jadvallardan iborat va bizning ma'lumotlar bazamizda hali biron bir jadval yo'q. Ma'lumotlar bazasi bo'sh, jadvallarsiz yaratiladi. Unda jadvallar alohida qo'shilishi kerak. Bu erda PHP bilan stol qo'shamiz.

Jadvalni yarating

MySQL ma'lumotlar bazalari nomidan SQL tarkibida tuzilgan so'rovlar tili sifatida tarjima qilingan tuzilgan so'rovlar tilini bildiradi. SQL tilida biz so'rovlarni yozamiz va PHP dasturidan MySQL serveriga yuborish uchun yozamiz.

Jadvalni yaratish uchun biz shunchaki jadval buyrug'ini yaratishimiz kerak. Keling, kolonnadagi foydalanuvchilarning ismlari bilan dasturxon yaratamiz (Kirish ustuni) va parollar (parol ustunlari) foydalanuvchilar.

$ So'rov \u003d "Jadval foydalanuvchilarini yaratish (Kirish Varchar (20), parol varaqasi)";

Ushbu Kodeksda biz SQL so'rovi bo'lgan matn satriga $ so'rovni belgilab berdik. Biz ikkita ustunni o'z ichiga olgan foydalanuvchilarning nomi bilan jadval yaratamiz (20). Biz ma'lumotlar turlari haqida keyinroq gaplashamiz, endi men faqat 20 ta belgidan iborat uzunlikdagi qatori ekanligini ta'kidlayman.

MySQL serveriga bizning so'rovimizni yuborish uchun, biz MySQLI_quarerer (). Ushbu xususiyat ijobiy raqamni qaytaradi, agar operatsiya muvaffaqiyatli bo'lsa va xato bo'lsa (so'rov Sintaksis noto'g'ri yoki dastur shartnomasini ijro etish huquqi mavjud emas).

$ Havolasi \u003d Mysqli_connect ("loalhost", "ildiz", "", "," Tester "); Agar (! $ havolasi) ("xato") bo'lsa; $ So'rov \u003d "Jadval foydalanuvchilarini yaratish (Kirish Varchar (20), parol varaqasi)"; Mysqli_quareri ($ so'rov); mysqli_cloz ($ bog'ich);

SQL so'rovi o'zgaruvchini yozib olish kerak emas, uni darhol MySQL_Querery () funktsiyasi deb yozilishi mumkin. Shunchaki kod o'qilishi mumkin.

Ushbu skript bitta kamchilikka ega - u brauzerga hech narsa olib kelmaydi. Xabar qo'shamiz:

$ Havolasi \u003d Mysqli_connect ("loalhost", "ildiz", "", "," Tester "); Agar (! $ havolasi) ("xato") bo'lsa; $ So'rov \u003d "Jadval foydalanuvchilarini yaratish (Kirish Varchar (20), parol varaqasi)"; Agar (mysqli_quy ($ so'rov) aks-sadosi "jadval yaratildi"; Boshqa aks-sadosi "jadval yaratilmagan"; mysqli_cloz ($ bog'ich);

Agar biz ushbu skriptni ijro etish uchun qayta boshlasak, brauzerda: "Jadval yaratilmagan". Gap shundaki, siz birinchi marta boshlaganingizda jadval yaratilgan va xuddi shu nom bilan jadval yaratishingiz mumkin emas. Biz xato vaziyatga duch keldik, demak, MySQL bilan ishlashda xatolarni qayta ishlash haqida gaplashish vaqti keldi.

Xatolarni qayta ishlash

Dasturni tuzatganda, biz aniq xato ma'lumotlariga muhtoj bo'lishimiz mumkin. MySQL-da xato yuz berganda, ma'lumotlar bazasi serveri xato raqami va uning tavsifi bilan satrni o'rnatadi. Ushbu ma'lumotlarga PHP-da kirish uchun maxsus funktsiyalar mavjud.

  • mySqli_RRno () - xato raqamini qaytaradi.
  • mySqli_Error () - xato tavsifi bilan satrni qaytaradi.

Endi mysql_Error () ni skriptimizga qo'shamiz:

$ havolasi \u003d MySQL_connect ("Localhost", "Ildiz", "", "," Tester "); Agar (! $ havolasi) ("xato") bo'lsa; $ So'rov \u003d "Jadval foydalanuvchilarini yaratish (Kirish Varchar (20), parol varaqasi)"; Agar (mysqli_quy ($ so'rov) aks-sadosi "jadval yaratildi"; Yana echo "stol yaratilmagan:" .Mizqli_Error (); mysqli_cloz ($ bog'ich);

Endi bizning skriptimiz brauzer satriga qaytadi: "Jadval yaratilmagan: jadval" dasturi allaqachon mavjud ".

Jadvalni o'chirish

Shunday qilib, bizda sizga kerak bo'lmagan stolda bor. Ma'lumotlar bazasidagi jadvallarni o'chirishni o'rganish vaqti keldi.

Jadvalni o'chirish, tomchi jadvalining buyrug'idan keyin stol nomi bilan ishlating.

$ Havolasi \u003d Mysqli_connect ("loalhost", "ildiz", "", "," Tester "); Agar (! $ havolasi) ("xato") bo'lsa; $ So'rov \u003d "tomchi dasturlaridan foydalanuvchilar"; Agar (! Mysqli_quvery ($ so'rov)) aks-sado "Jadvalni o'chirishda xato:" .Mizqli_Error (); Boshqa aks-sadosi "jadval o'chirildi."; mysqli_cloz ($ bog'ich);

Natijalar

Shunday qilib, mysql asoslarini o'zlashtirdik. Biz nimani o'rgandik:

  • MySqli_connect () funktsiyasidan foydalanib MySQL ma'lumotlar bazasiga ulaning.
  • MySqli_closlin () funktsiyasidan foydalanib MySQL serveriga ulanishni yoping.
  • MySqli_quareri () funktsiyasidan foydalanib, MySQL serveriga SQL so'rovlarini yuboring.
  • Biz stol yaratish uchun SQL so'rovini o'rgandik: jadval yaratish.
  • Biz stolni o'chirish uchun SQL so'rovini o'rgandik.
  • MySqli_RNo () va MySqli_Error () funktsiyalaridan foydalanib xatolarni qanday qayta ishlashni o'rgandik.

Keyin MySQL ma'lumotlarining turlarini batafsil ko'rib chiqamiz.

Biz quyidagi darsni o'qiymiz:

Kod misollari bilan PHP-ga MySQL-ga ulanishning 3 usuli


MySQL ma'lumotlar bazasidan foydalanishni boshlash uchun avval ushbu MySQL ma'lumotlar bazasiga foydalanuvchi PHP dasturingizdan (Scrips) qanday ulanishni tushunishingiz kerak.

Sharmlanayotgan moddaning quyidagi uchta usul, shuningdek, PHP ma'lumotlar bazangizga qanday misollarni tasvirlaydi, bu esa sizning ma'lumotlar bazangizga PHP-dan qanday ulanishni tushuntiradi.

Quyidagi barcha misollar uchun biz allaqachon mavjud MySQL ma'lumotlar bazasiga ulanamiz. Izoh: Bu erda tushuntirilganlarning barchasi MariaDb bilan, shuningdek MySQL bilan ishlaydi.

1. PHP-ga MySqli kengaytmasi yordamida ulaning
*mysqli mysql yaxshilanganligini anglatadi

Quyidagi mysqli.php faylini yarating

conth_Error) ("Xato: ulana olmadi:". $ $ Ulanish - ulanish yoki ulanish yoki ulanish: ma'lumotlar bazasiga ulangan.
"; $ 1-so'rovnoma (" Goroda "dan ID-ni tanlang); echo: $ 1.\u003e Yopish-\u003e ni tanlang (). $ ();?\u003e Yuqoridagi kodda:

  • mySqli - bu xususiyat MySqli kengaytmasi yordamida yangi ulanishni boshlaydi. Funktsiya to'rtta dalilni oladi:
    1. mySQL ma'lumotlar bazasi ishlayotgan lokalxost
    2. ism - ulanish uchun MySQL foydalanuvchi ismi
    3. mySQL foydalanuvchisi uchun parol - parol
    4. dB - Ulanish uchun MySQL ma'lumotlar bazasi.
  • qVeri - MySQL so'rovi funktsiyasi. Ushbu misolda biz shaharlar bazalaridan ustun identifikatorini tanlaymiz.
  • Va nihoyat, natijada num_rows o'zgaruvchisidan foydalanadigan qatorlarni ko'rsatamiz. Yuqorida ko'rsatilganidek, natijani ham, ulanish o'zgaruvchini ham yopamiz.
O'zingizning brauzeringizdan yuqoridagi MySqli.php-ni chaqirganda, siz PHP MySQL ma'lumotlar bazasiga ulanib, ma'lumotlarni olishni va ma'lumotlarni olish imkoniyatini ko'rsatadi.

Ma'lumotlar bazasiga ulangan. Qatorlar soni: 6 2. PHP MySQL pdo kengaytmasidan ulaning
*Pdo PHP ma'lumotlari ob'ektlarini anglatadi

POD_MYSQL Driveri PHP skriptingizdan MySQL ma'lumotlar bazasiga ulanish uchun PHP skriptingizdan ulanish uchun php orqali taqdim etiladi.

Quyidagi mysql-pdo.php faylini yarating:

setattribe (PDO :: ASC_RERDMODE, PDO :: IRRMODOE_EXCACTION); Echo "ma'lumotlar bazasiga ulandi.
"; $ SQL \u003d" Gorodadan ID-ni tanlang; Chop etish "Ro'yxat identifikatori:
"; Foreaect ($ cent-\u003e so'rov ($ s.) $ ($ c $ [" ID]. "
";) $ Cont \u003d nick (Echo" xatosi: ulana olmadim: '. $ MES-\u003e GetMessage ();)

  • yangi pdo - yangi post ob'ektini yarating, bu quyidagi uchta dalilni oladi:
    1. mySQL Connect satr: "MySQL: xost \u003d localhost; dbname \u003d db" formatida bo'ladi. Yuqoridagi misolda DB lokalhostda ishlaydi va biz DB ma'lumotlar bazasiga ulanamiz.
    2. MySQL nomi ulanish uchun
    3. MySQL foydalanuvchi paroli
  • o'zgaruvchan $ SQL - Siz bajarmoqchi bo'lgan SQL so'rovini yarating. Ushbu misolda biz shahar stolidan ustun identifikatorini tanlaymiz.
  • so'rov ($ s.). Bu erda biz hozirgina yaratgan SQL so'rovini qilamiz.
  • har biriga. Bu erda biz natijani yuqoridagi so'rov buyrug'i bilan chiqaramiz va uni $ qator o'zgaruvchisiga saqlang va keyin uni aks-sado orqali chiqaramiz.
  • MySQL pdo ulanishni yopish uchun shunchaki $ Conterni NULL ga o'rnating.
Yuqoridagi mysqli.php.php skriptni brauzeringizdan skriptni ko'rib chiqsangiz, siz quyidagi satrlarni ko'rasiz; Ular PHP MySQL ma'lumotlar bazasiga ulanib, ma'lumot olishni anglatadi:

Ma'lumotlar bazasiga ulangan. Ro'yxat ID: 1 2 3 4 5 6 3. MySQL-ni eskirgan funktsiyalardan PHP C-dan ulaning

Agar siz PHP-ning eski versiyasidan foydalansangiz, ushbu usuldan foydalaning va biron sababga ko'ra uni yangi versiyaga yangilay olmaysiz. Ushbu usulning o'rniga yuqorida ko'rsatilgan 2-son va 3-usul usulidan foydalanish tavsiya etiladi. Men ushbu usulni faqat ma'lumotnoma uchun yoqdim va foydalanish bo'yicha tavsiyalar emas.

Ushbu o'ziga xos kengaytma php 5.5 dan eskirgan. Ammo, PHP 7.0 versiyasidan boshlab, u hatto olib tashlanganligi sababli ishlamaydi. PHP 5.5 dan boshlab, ushbu funktsiyalardan foydalanganda, u E_DEPRECREDAL-ni yaratadi.

MySQL.Php:

"; $ natija \u003d gorodadan identifikatsiyalash (" Goraoda "ni tanlang ($ MySQL_Fetch_Rou ($ 1: 'ID 1:
\\ n "; mysql_cloz ($ ulash);?\u003e Yuqorida saralash:

  • Mysqlonnect xususiyati uchta dalilni oladi:
    1. mySQL ma'lumotlar bazasi ishlayotgan xost nomi;
    2. mySQL ulanish uchun foydalanuvchi ismi;
    3. mySQL foydalanuvchi uchun parol. Bu erda foydalanuvchi nomi va parol yordamida mahalliy serverda amalga oshiriladigan MySQL ma'lumotlar bazasiga ulanadi.
  • Mysql_elect_db funktsiyasi. Nom quyidagicha, u siz ulanishni xohlagan ma'lumotlar bazasini tanlaydi. "Foydalanish" buyrug'iga teng. Ushbu misolda biz DB ma'lumotlar bazasiga ulanamiz.
  • MySQL_quarerer funktsiyasi MySQL so'rovingizni belgilash uchun ishlatiladi. Ushbu misolda biz shaharlar bazalaridan ustun identifikatorini tanlaymiz.
  • mysql_fetch_row. Biz hozirgina yaratgan SQL so'rovidan qatorlarni olib tashlash uchun ushbu xususiyatdan foydalaning.
  • Va nihoyat, yuqorida ko'rsatilgandek mysql_closoz buyrug'i yordamida ulanishni yoping.
Yuqoridagi MySQL-Leadcy.php-dan qo'ng'iroq qilganingizda, siz brauzeringizdan, PHP MySQL ma'lumotlar bazasiga ulanib, ma'lumotlarni olish va ma'lumotlarni olish imkoniyatini ko'rsatadigan xabarni ko'rasiz.

Ma'lumotlar bazasiga ulangan. ID 1: 1 Shunday qilib, bu yo'l MySQL-ga ulanishi mumkin. Men takrorlayman, dastlabki ikki usuldan foydalanish yaxshiroqdir; haqida

Ushbu maqolada biz "MySQL" jadvallariga SQL so'rov tilidan foydalangan holda kirish usullarini ko'rib chiqamiz. SQL - bu juda "aniqlangan" - tuzilgan so'rovlar tili.
PHP tilida "MySQL" prefiks bilan bir qator funktsiyalar mavjud. Biz ularga so'rovlarni ko'rib chiqish uchun ko'p narsa kerak emas. PHP tilida, ularsiz funktsiya, SQL so'rovlarini bajarish mumkin emas:

MySQL_quarerer resurs

Ushbu xususiyat ma'lumotlar bazasi so'rovini yuboradi va muvaffaqiyatli muomalada bo'lsa, resurs identifikatorini qaytaradi.
MySQL ma'lumotlar bazasiga ulanish uchun siz quyidagi ketma-ketlikni bajarishingiz kerak:

$ Xost \u003d "logist"; // xost nomi (Provajder tomonidan ko'rsatilgan) $ DATABase \u003d "Db_name"; // Siz $ formatingiz kerak bo'lgan ma'lumotlar bazasi nomi \u003d "User_name"; // Siz ko'rsatgan foydalanuvchi nomi yoki $ pSWD \u003d "Siz aniqlagan" Sizning_pp "provayderi; // Siz ko'rsatgan parol DbH \u003d MySQL_CONONNECT ($ xost, $, $, $) (MySQL-ga ulanolmayman); Mysql_elect_db ($ ma'lumotlar bazasi) yoki o'lish ("men bazaga ulana olmayman.");

shunday qilib mysql_connect ()- Xostingda MySQL serveriga ulanish funktsiyasi.
Lekin mysql_elect_db () Ulanish serverida ma'lumotlar bazasini tanlaydi.
Boshqacha aytganda, siz serverga ulanasiz, ma'lumotlar bazasini tanlang va ishlashni boshlang.
Agar xato sizga brauzer oynasiga ko'rsatgan xabarni ko'rsatsa, o'lish () funktsiyasi deb nomlanadi.
Funktsiya ma'lumotlar bazalari bilan to'ldirish uchun ishlatiladi:

Mysql_cloz ($ dbh);

Bu yerda $ dbh. - ulanganda ulangan funktsiyaga qaytarilgan tavsifjor mysql_connect..
Boshlang'ich sharhni tugatgandan so'ng, Keling, SQL so'rovini ko'rib chiqaylik.
Buning uchun, avvalo, siz ma'lum bir ism bilan ma'lumotlar bazasini yaratishingiz kerak. Va unda o'ziga xos nom bilan stolni yarating. Sizning misollarimizda biz jadvalga murojaat qilamiz my_sql_table. Ushbu jadvalni yaratish uchun, keling, bizning lokalxozimizni phpMyAdmin-da bajaraylik.

Jadvalni yarating `l_SQL_Tabble '(Inst emas, // Kelaverchi kelajakda »Familiya emas Varrar (50) emas Varar (50) Null, // Max 50 belgilar uzunligi 'ID') // asosiy kalit - id identifikatori);

Shunday qilib, jadval yaratildi. Biz birinchi talabni PHP-kodi shaklida chiqaradigan birinchi so'rovni bajaramiz:

\\ n "; echo" nomi: "$ Rous [" Ism "]."
\\ n "; echo" familiyasi: "$ [" familiya "]."


\\ n ";)?\u003e

Biz PHP fayl kodini tahlil qilamiz firstsql.php.. Ma'lumotlar bazasi jadvallari (ma'lumotlar bazasi) bilan haqiqiy so'rovdan boshlaylik.

$ So'rov \u003d "My_SQL_Table" dan * -ni tanlang ";

Ushbu so'rovni shifrlash mumkin: jadvaldan tanlang my_sql_table Barcha maydonlardan kelgan barcha yozuvlar. Shu tariqa * So'zdan keyin "Hamma narsani tanlash" degan ma'noni tanlash. Shuning uchun so'rov shakllanadi. Endi u bajarilishi kerak:

$ rom \u003d mysql_quver ($ so'rov);

So'rov funktsiyasini muvaffaqiyatli bajarilgan taqdirda mysql_quareri () Bizga resurs identifikatorini qaytaradi $ Mahal.
Uni funktsiya uchun parametr sifatida o'tkazilishi kerak mysql_fchet_array (). Ushbu funktsiya nomi o'zi uchun gapiradi. Ular. U shakllantiradi va ma'lumotlar bazasi jadvalidan namuna bilan bir qator beradi. Bizning stolimizda qator stolda yozuvlar soni (torlar) soniga teng bo'lgan bir qator elementlardan iborat bo'ladi iD, Ism, familiya Stolning har bir qatori uchun. Shuning uchun quyidagi kod:

Worm ($ sw \u003d mysql_fchet_arch_arnay (echo "raqami:" raqami: "ID"]. "
\\ n "; echo" nomi: "$ Rous [" Ism "]."
\\ n "; echo" familiyasi: "$ [" familiya "]."


\\ n ";)

siz bu haqda izoh berishingiz mumkin: $ 15 AQSh o'zgaruvchisi nolga teng operatsiya natijalarini oladi mySQL_Fetch_Row Siz brauzerda dala qiymatini berishingiz kerak $ Rous ["ID"], $ Ruse ["Famillo"], $ Rus ["Familiya"] yordamida aks sado..
Agar so'rov quyidagicha bajarilgan bo'lsa:

$ So'rov \u003d "Mening ismlimizni tanlang" My_SQL_Tabble ";

bu shuni anglatadiki, faqat birinchi satrlardan faqat birinchi kurs maydonining qadriyatlari tanlanadi.
Binobarin, oldingi kod quyidagicha yozilishi kerak:

$ rom \u003d mysql_quver ($ so'rov); Worm ($ sw \u003d mysql_fchet_arnay (echo "nomi:". $ ["Familiya"]. "
\\ n ";)

Agar siz biron bir qiymat bilan jadval chizig'ini tanlashni xohlasangiz id Familiya (familiyasi) qayerda bo'ladi PetrovSo'rov quyidagicha yozadi:

$ So'rov \u003d "My_SQL_Tabble" dan ID-ni tanlang ("Petrov";

Ammo agar siz raqam ostida bo'lgan odamning familiyasini, masalan, 5, keyin so'rov shu kabi bo'ladi:

$ So'rov \u003d "My_SQL_Table" Familiyani tanlang

Bunday holda, siz so'rovning natijasi jadvaldan faqat bitta satr bo'ladi. Ular. Maydonni ishlatishning ma'nosi yo'q vaqt. Va so'rovni qayta ishlash quyidagi bo'ladi

$ rom \u003d mysql_quver ($ so'rov); $ com \u003d mysql_fetch_row ($ pul); Echo "Ro'yxatdagi beshinchi shaxsning familiyasi:". $ Satr. "\\ N";

Mysql_fchet_array () o'rniga biz murojaat qildik mysql_fetch_row (). Ular. Ma'lum bir satrning dala qiymatini (yoki maydonlarini) oling. Bizda bitta maydon bor edi - familiya - biz $ svey maslasining yagona elementiga murojaat qilishimiz mumkin $;.

Shunday qilib, MySQL so'rovlarining eng tipik misollarini ko'rib chiqing. Ko'rib chiqish stol asosida sarflanadi my_sql_table:
1. My_SQL_Table Jadval maydonini (otasining ismi) qo'shing familiya.:

$ So'rov \u003d "o'zgartirish jadvali" My_SQL_Table "Fority_name '
"Familiya" dan keyin "Varar" (50) nolga teng emas

2. Endi familiyani my_sql_table jadvalidan o'chiring:

$ So'rov \u003d "o'zgartirish jadvalining" ni o'zgartirish "familiyasi";

3. My_SQL_Table jadvalidan familiya bilan yozuvlarni o'chiring:

$ So'rov \u003d "My_SQL_Tabble-dan o'chirish -" Sidorov ";

4. Tenglik belgilariga qo'shimcha ravishda, shuningdek, MySQL so'rovlari tilida "ko'proq" yoki "kamroq", "MySQL" so'rovi tilida tushuncha mavjud " o'xshash"My_SQLL_GTable Jadvaldagi yozuvlarni tanlang, u erda familiya topilgan" dor." :

$ So'rov \u003d "%% dor" kabi familiyalar;

Bu erda mavjud % "" Dor "boshida va oxirida so'rov uning boshida, tugashini yoki otasining qayerda bo'lishidan qat'i nazar, so'rovni" dor "qidirishini anglatadi. Quyidagi misolni ko'rib chiqing
5. My_SQL_Table stolidan yozuvlarni boshlagan familiya bilan tanlang Pechka. Joylashuvga e'tibor bering " % ":

$ So'rov \u003d "My_SQL_Tabble '-dan" P% "kabi familiyalar;

6. Maksimal qiymatni hisoblang. id:

$ So'rov \u003d "My_SQL_Table 'dan Max (ID) ni tanlang';

7. My_SQLL_TUBT-dagi maydonlar sonini hisobla boshlagan familiya bilan hisoblang Pechka.

$ So'rov \u003d "My_SQL_Table 'ni" p% "kabi familiyadan tanlang;

8. My_SQL_Table Jadvalni o'chirish:

$ So'rov \u003d "Drop Statlar" My_SQL_Table '";

PHP tilida 1-3 so'rovlari uchun u shunchaki so'rovni bajarish uchun etarli:

Mysql_quareri ($ so'rov);

Biz so'rovlarning eng xarakterli namunalarini ko'rib chiqdik. Ishonamanki, ularning yordami bilan, siz boshlang'ich mantiqiy ravishda siz MySQL ma'lumotlar bazalarini yaratgan murakkab savollarni bajara olasiz.




Hali ham savollar mavjud yoki tushunarsiz narsamiz - o'zimizga xush kelibsiz