اینترنت پنجره ها اندروید

مثال پی اچ پی با MySQL. مبانی کار با PHP Mysqli

در ارتباط با خاتمه حمایت از PHP MySQL در سال 2011، PDO یا PDO ها به طور کامل برای کار با پایگاه های داده استفاده می شود mysqli. آنها قابلیت های بهتر (از MySQL) را ارائه می دهند و API OOP (Object-oriented) را ارائه می دهند. کدام یک بهتر است، این یک موضوع برای یک مقاله دیگر است، در این مقاله ما سعی خواهیم کرد با اصول کار با MySQLI مقابله کنیم. بنابراین، بدون پیشبرد های بیشتر، ما به اتصال (اتصال)، را انتخاب کنید، (انتخاب)، وارد کنید (درج)، به روز رسانی (به روز رسانی)، حذف (حذف) سوابق (داده ها / اسناد / اطلاعات) از طریق PHP Mysqli. امیدوارم این مقاله در حل مشکلات مفید باشد که ممکن است هنگام کار با PHP Mysqli بوجود آید.

نصب mysqli

هنگام استفاده از PHP نسخه 5.3.0 +، MySQLI به طور پیش فرض در دسترس است؛ برای نسخه های قدیمی تر آن را در دسترس، شما باید php_mysqli.dll dll را در داخل فایل فعال کنید php.ini و ویرایش php.ini، احیای خط extension \u003d php_mysqli.dll. در لینوکس، MySQLII در هنگام نصب بسته PHP5 MySQL به طور خودکار نصب می شود. اطلاعات بیشتر در مورد نصب در سیستم های ویندوز و لینوکس را می توان یافت.

اتصال به پایگاه داده

MySQLI ارائه می دهد دو راه برای اتصال به پایگاه داده: رویه ای و شی گرا. توصیه می شود از شی گرا استفاده کنید. رویه ای شبیه به MySQL است، بنابراین برای مبتدیان ترجیح داده خواهد شد، بهتر است به یاد داشته باشید که توصیه نمی شود از آن استفاده کنید.

پی اچ پی

// سبک رویه $ mysqli \u003d mysqli_connect ("میزبان"، "نام کاربری"، "رمز عبور"، "database_name")؛ // سبک شی گرا (توصیه شده) $ mysqli \u003d جدید mysqli ("میزبان"، "نام کاربری"، "رمز عبور"، "database_name")؛

در زیر باز کردن یک اتصال با پایگاه داده روش شی گرا است. این روش در تمام نمونه های زیر استفاده می شود.

پی اچ پی

connect_error) (Die ("ERROR: (" $ mysqli-\u003e connect_errno ")" $ mysqli-\u003e connect_error)؛)؟\u003e

انتخاب (انتخاب) سری حاصل به صورت یک آرایه انجمنی

mysqli_fetch_assoc (): در کد زیر، محدوده رزولوشن حاصل شده به صورت یک آرایه انجمنی استخراج می شود. آرایه بازگشتی شامل ردیف های حاصل از پایگاه داده ای است که نام ستون کلید مورد استفاده برای دسترسی به داده های داخلی است. همانطور که در زیر نشان داده شده است، داده ها به عنوان یک جدول HTML نمایش داده می شود.

پی اچ پی

connect_error) (Die ("خطا: (" $ mysqli-\u003e connect_errno ")" $ mysqli-\u003e connect_error)؛) // mysqli انتخاب query $ نتایج \u003d $ mysqli-\u003e "؛ در حالی که ($ ردیف \u003d $ نتایج -\u003e fetch_assoc ()) (چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ""؛) چاپ"
"$ ردیف [" id "].""$ ردیف [" product_code "].". "$ ردیف [" product_name "].""$ ردیف [" product_desc "].""$ ردیف [" قیمت "]."
"؛ حافظه مرتبط با نتیجه $ نتایج را آزاد می کند-\u003e رایگان ()؛ // // close اتصال $ mysqli-\u003e بستن ()؛؟\u003e

انتخاب (انتخاب) ردیف نتیجه را به صورت یک آرایه (وابسته، عادی یا هر دو)

fuctection fetch_array (): آرایه را با قابلیت های ترکیبی mysqli_fetch_row و mysqli_fetch Assoc باز می گرداند. این ویژگی یک نسخه گسترده از تابع mysqli_fetch_row () است؛ برای دسترسی به داده ها، می توانید از هر دو رشته و اعداد استفاده کنید.

پی اچ پی

connect_error) (Die ("ERROR: (" $ mysqli-\u003e connect_errno ")" $ mysqli-\u003e connect_error)؛) // mysqli انتخاب query $ نتایج \u003d $ mysqli-\u003e query ("انتخاب ID، product_code، product_desc، قیمت از محصولات ")؛ چاپ " fetch_array ()) (چاپ "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ""؛) چاپ"
"$ ردیف [" id "].""$ ردیف [" product_code "].". "$ ردیف [" product_name "].""$ ردیف [" product_desc "].""$ ردیف [" قیمت "]."
"؛ حافظه مرتبط با نتیجه $ نتایج را آزاد می کند-\u003e رایگان ()؛ // // close اتصال $ mysqli-\u003e بستن ()؛؟\u003e

انتخاب (انتخاب) سری حاصل به عنوان یک شی

fetch_object (): برای دریافت یک نتیجه نتیجه در قالب یک شی، شما باید از mysqli fetch_object () استفاده کنید. صفات شیء نام های فیلد را در داخل مجموعه نتیجه نمایش می دهد.

پی اچ پی

connect_error) (Die ("ERROR: (" $ mysqli-\u003e connect_errno ")" $ mysqli-\u003e connect_error)؛) // mysqli انتخاب query $ نتایج \u003d $ mysqli-\u003e query ("انتخاب ID، product_code، product_desc، قیمت از محصولات ")؛ چاپ " "؛ در حالی که ($ ردیف \u003d $ نتایج -\u003e fetch_object ()) (چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ""؛) چاپ"
"$ ردیف-\u003e ID""$ row-\u003e product_code.""$ row-\u003e product_name.""$ row-\u003e product_desc.""$ row-\u003e قیمت".
"؛ / / اتصال نزدیک $ mysqli-\u003e بستن ()؛؟\u003e

انتخاب (انتخاب) تنها مقدار را انتخاب کنید

شما می توانید یک مقدار از پایگاه داده را با استفاده از fetch_object (روش اسپیرسی کامرون) دریافت کنید.

پی اچ پی

connect_error) (Die ("ERROR: (" $ mysqli-\u003e connect_errno. ")" $ mysqli-\u003e connect_error)؛ // CHRAED PHP توابع $ product_name \u003d $ mysqli-\u003e query ("انتخاب product_name از محصولات که در آن ID \u003d 1 ") -\u003e fetch_object () -\u003e product_name؛ چاپ $ product_name؛ // مقدار خروجی $ mysqli-\u003e بستن ()؛ ؟\u003e

حذف (شمارش شمارش) تعداد ردیف ها در جدول

گاهی اوقات شما نیاز به پیدا کردن تعداد ردیف ها در جدول، به ویژه هنگامی که صفحات تعداد.

پی اچ پی

connect_error) (die ("خطا: (" $ mysqli-\u003e connect_errno ")" $ mysqli-\u003e connect_error)؛ // دریافت تعداد کل سوابق $ نتایج \u003d $ mysqli-\u003e query ("انتخاب تعداد (*) از کاربران ")؛ $ get_total_rows \u003d $ نتایج -\u003e fetch_row ()؛ // نگه داشتن کل سوابق در متغیر $ mysqli-\u003e نزدیک ()؛ ؟\u003e

انتخاب (اظهارات آماده شده)

ایالت های آماده - ابزار ویژه DBMS که به شما اجازه می دهد تا سرعت اجرای تکراری از پرس و جو های تکراری ساخته شده توسط یک قالب را افزایش دهید.

یکی از ویژگی های MySQLI توانایی استفاده از قالب های نوشته شده در حال حاضر است: یعنی درخواست به اندازه کافی برای نوشتن یک بار، پس از آن می توان بارها و بارها با پارامترهای مختلف اجرا کرد. استفاده از قالب های قبلا نوشته شده عملکرد را برای جداول بزرگ و پرس و جو های پیچیده بهبود می بخشد. برای جلوگیری از کد مخرب برای جلوگیری از تجزیه و تحلیل هر درخواست توسط سرور جداگانه ساخته شده است.

کد زیر از قالب (بیانیه آماده شده) برای دریافت داده ها از پایگاه داده استفاده می کند. تجمیع ? پرس و جو SQL نقش مارکر را بازی می کند و با پارامتر جایگزین می شود که به نوبه خود می تواند یک رشته، یک عدد صحیح، دو یا لکه باشد. در مورد ما، این یک ردیف $ search_product است.

پی اچ پی

$ search_product \u003d "PD1001"؛ // ID محصول // ایجاد یک بیانیه آماده $ query \u003d "انتخاب شناسه، product_code، product_desc، قیمت از محصولات که product_code \u003d؟"؛ $ strument \u003d $ mysqli-\u003e آماده سازی ($ query)؛ // پارامترهای مرتبط برای نشانگرها، جایی که (S \u003d String، I \u003d integer، d \u003d double، b \u003d b \u003d blob) $ بیانیه-\u003e bind_param ("s"، $ search_product)؛ // Execute Query $ strument-\u003e اجرای ()؛ // متغیرهای نتیجه اتصال $ بیانیه-\u003e "؛/ // spetch سوابق در حالی که ($ بیانیه-\u003e fetch ()) (چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ""؛) چاپ"
"$ id""$ product_code.""$ product_desc.""قیمت $."
"؛ / / Close Connection $ strument-\u003e بستن ()؛

همان درخواست با چند پارامتر:

پی اچ پی

$ search_id \u003d 1؛ $ search_product \u003d "PD1001"؛ $ query \u003d "انتخاب شناسه، product_code، product_desc، قیمت از محصولات که ID \u003d؟ و product_code \u003d؟"؛ $ strument \u003d $ mysqli-\u003e آماده سازی ($ query)؛ $ strument-\u003e bind_param ("is"، $ search_id، $ search_product)؛ $ بیانیه-\u003e اجرای ()؛ $ بیانیه-\u003e bind_Result ($ id، $ product_code، $ product_desc، $ قیمت)؛ چاپ " "؛ در حالی که ($ strument-\u003e fetch ()) (چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ" "؛ چاپ""؛) چاپ"
"$ id""$ product_code.""$ product_desc.""قیمت $."
"؛ / / Close Connection $ strument-\u003e بستن ()؛

قرار دادن (قرار دادن) سوابق

رکورد زیر یک ردیف جدید را به جدول وارد می کند.

پی اچ پی

real_escape_string ("P1234"). "" $ product_name \u003d "" $ mysqli-\u003e Real_escape_string ("42 اینچ تلویزیون"). "" $ product_price \u003d "" $ mysqli-\u003e Real_escape_string ("600"). " ""؛ // mysqli insert query $ insert_row \u003d $ mysqli-\u003e query ("وارد محصولات، product_code، product_name، $ product_name، $ product_price)")؛ اگر ($ insert_row) (print "success" id! id از آخرین ضبط ثبت شده است: "$ mysqli-\u003e insert_id".
"؛) دیگر (خطا (" خطا: ("$ mysqli-\u003e errno") "$ mysqli-\u003e خطا)؛)؟\u003e

یک گزیده زیر مقادیر مشابه را از طریق قالب ها (بیانیه تهیه شده) قرار می دهد. همانطور که گفتیم، قالب ها در برابر تزریق SQL بسیار موثر هستند. برای مثال بالا، استفاده از آنها گزینه بهینه است.

پی اچ پی

// مقادیر باید در جدول پایگاه داده قرار داده شود $ product_code \u003d "P1234"؛ $ product_name \u003d "42 اینچ تلویزیون"؛ $ product_price \u003d "600"؛ $ query \u003d "وارد کردن به محصولات (product_code، product_name، قیمت) (؟،؟،؟،؟)؛ $ strument \u003d $ mysqli-\u003e آماده سازی ($ query)؛ // پارامترهای مرتبط برای نشانگرها، جایی که (S \u003d رشته، I \u003d integer، d \u003d double، b \u003d blob) $ strument- bind_param ("SSS"، $ product_code، $ product_name، $ product_price)؛ اگر ($ $ -\u003e اجرای ()) (چاپ "موفقیت"! شناسه آخرین ضبط شده است: "$ strument-\u003e insert_id".
"؛) else (die (" خطا: ("$ mysqli-\u003e errno") "$ mysqli-\u003e خطا)؛) $ strument-\u003e بستن ()؛

قرار دادن (قرار دادن) سوابق چندگانه

قرار دادن چند ردیف به طور همزمان با تعویض تعدادی از مقادیر ستون انجام می شود، جایی که هر ردیف مقادیر باید به براکت ها اعمال شود و از دیگر دریاهای جدا شود. گاهی اوقات شما باید بدانید که چند ورودی وارد شده، به روز شده یا حذف شده است، زیرا شما می توانید از mysqli_affected_rows استفاده کنید.

پی اچ پی

// محصول 1 $ product_code1 \u003d "". "$ mysqli-\u003e real_escape_string (" P1 ")." ""؛ $ product_name1 \u003d "" $ mysqli-\u003e Real_escape_string ("Google Nexus"). "" "؛ $ product_price1 \u003d "". "$ mysqli-\u003e real_escape_string (" 149 ")." "؛ // محصول 2 $ product_code2 \u003d "" .. $ mysqli-\u003e Real_escape_string ("P2"). ""؛ $ product_name2 \u003d "". "$ mysqli-\u003e real_escape_string (" اپل اپل 2 ")." ""؛ $ product_price2 \u003d "" $ mysqli-\u003e Real_escape_string ("217"). ""؛ // محصول 3 $ product_code3 \u003d "" .. $ mysqli-\u003e Real_escape_string ("P3"). ""؛ $ product_name3 \u003d "" $ mysqli-\u003e real_escape_string ("سامسونگ گلکسی نکته"). "" "؛ $ product_price3 \u003d "". "$ mysqli-\u003e real_escape_string (" 259 ")." ""؛ // ردیف های چندگانه $ insert \u003d $ mysqli-\u003e query ("وارد محصولات، product_code_name، $ product_name1، $ product_Price1)، ($ product_Price1)، ($ product_code2، $ product_name2، $ product_Price2) ($ probuance_code3، $ product_name3، $ product_price3 ) ")؛ اگر ($ insert) (/ / / / / / / / / / / / / / / performations of total_affected_rows print "mysqli_affected_rows print" Success! Total. "$ mysqli-\u003e heated_rows." ردیف افزود.
"؛) دیگر (DIE (" خطا: ("$ mysqli-\u003e errno") "$ mysqli-\u003e خطا)؛)

به روز رسانی / حذف ضبط (حذف)

اصل به روز رسانی و حذف سوابق همان. به اندازه کافی برای جایگزینی رشته پرس و جو در به روز رسانی MySQL یا حذف (من نمی فهمم، به آن نگاه کنید).

پی اچ پی

// mysqli update query $ نتایج \u003d $ mysqli-\u003e query ("به روز رسانی محصولات مجموعه product_name \u003d" 52 اینچ تلویزیون "، product_code \u003d" 323343 "که ID \u003d 24")؛ // MySQLI حذف پرس و جو // $ نتایج \u003d $ mysqli-\u003e query ("حذف از محصولات که در آن ID \u003d 24")؛ اگر (نتایج $) (چاپ "موفقیت"! رکورد به روز شده / حذف "؛) else (چاپ" خطا ": ($ mysqli-\u003e errno.") "$ mysqli-\u003e خطا؛)

اظهارات آماده شده

یک مثال از به روز رسانی ضبط با استفاده از قالب ها (حالت های آماده شده) در زیر نشان داده شده است.

پی اچ پی

$ product_name \u003d "تلویزیون 52 اینچ"؛ $ product_code \u003d "9879798"؛ $ find_id \u003d 24؛ $ query \u003d "update products set product_name \u003d؟، product_code \u003d؟ کجا id \u003d؟"؛ $ strument \u003d $ mysqli-\u003e آماده سازی ($ query)؛ // پارامترهای اتصال برای نشانگرها، جایی که (S \u003d String، I \u003d intger، d \u003d double، b \u003d blob) $ نتایج \u003d $ strument-\u003e bind_param ("ssi"، $ product_name، $ product_code، $ find_id)؛ اگر (نتایج $) (چاپ "موفقیت"! رکورد به روز شده "؛) else (چاپ" خطا ": ($ mysqli-\u003e errno") "$ mysqli-\u003e خطا؛)

حذف سوابق قدیمی

تمام نوشته ها بر روی سرور در سرور هستند بیش از 1 روز حذف می شوند؛ تعداد روزها را می توان تنظیم کرد.

پی اچ پی

// mysqli حذف query $ نتایج \u003d $ mysqli- (در حال حاضر () - فاصله 1 روز) ")؛ اگر (نتایج $) (PRINT" SUCCESS! RECOME RECORDS یک روزه "؛) ELSE (PRINT" ERROR: ("$ mysqli- نتیجه

بدون تردید، MySQLI به طور قابل توجهی بهتر از استاندارد MySQL توسعه PHP است، هرچند اصول کار آنها کاملا مشابه هستند. من امیدوارم که اطلاعات فوق در هنگام ایجاد و انتقال پروژه ها در آینده مفید باشد. برای راحتی، زیر برای دانلود فایل های نمونه اجرا شد. این را می توان با کلیک کردن بر روی دکمه دانلود انجام داد.

کار با پایگاه داده MySQL با RNR

سخنرانی. آماده prokhorov vs


1. اتصال سناریوهای PNP با جداول MySQL

ویژگی های اغلب استفاده شده را در نظر بگیرید که به شما اجازه می دهد تا با پایگاه داده MySQL توسط RNR کار کنید.

هنگامی که RNR و MySQL تعامل می کنند، برنامه با استفاده از مجموعه ای از توابع با DBMS تعامل دارد.

1.1 اتصال به سرور تابع mysql_connect.

قبل از کار با پایگاه داده، باید یک اتصال شبکه را با آن نصب کنید، همچنین برای تأیید کاربر. این تابع mysql_connect () است.

منابع mysql_connect (]]

این ویژگی اتصال شبکه را به پایگاه داده MySQL واقع در میزبان سرور $ (به طور پیش فرض محلی، i.e. کامپیوتر فعلی) تنظیم می کند و یک شناسه اتصال باز را باز می کند. تمام کار بیشتر با این شناسه انجام می شود. تمام توابع دیگر که این شناسه را دریافت می کنند (توصیفگر) به عنوان یک استدلال به طور منحصر به فرد پایگاه داده انتخاب شده را تعریف می کنند. هنگام ثبت نام، نام کاربری $ $ username و رمز عبور رمز عبور $ (به طور پیش فرض، نام کاربری که فرآیند فعلی در حال اجرا است - زمانی که اسکریپت های اشکال زدایی: ریشه، و رمز عبور خالی):

$ dbpasswd \u003d ""؛ //کلمه عبور

// نمایش هشدار

اکو ("

");

متغیرهای $ dblocation، $ dbuser و $ dbpasswd فروشگاه نام سرور، نام کاربری و رمز عبور.

1.2 اتصال اتصال به سرور. تابع mysql_close

اتصال به سرور MySQL به طور خودکار در انتهای اسکریپت بسته خواهد شد، یا هنگام تماس از تابع mysql_close

bool mysql_close ()

این ویژگی اتصال به سرور MySQL را مختل می کند و با اجرای موفقیت آمیز عملیات درست می شود و در غیر این صورت اشتباه می کند. این تابع یک توصیفگر اتصال پایگاه داده را به عنوان یک استدلال که توسط تابع mysql_connect بازگردانده می شود را می پذیرد.

$ dblocation \u003d "localhost"؛ // نام ارائهکننده

$ dbuser \u003d "root"؛ //نام کاربری

$ dbpasswd \u003d ""؛ //کلمه عبور

// اتصال به سرور پایگاه داده را وارد کنید

// فشار نماد خروجی خطا @ قبل از فراخوانی تابع

$ dbcnx \u003d @ mysql_connect ($ dlblocation، $ dbuser، $ dbpasswd)؛

اگر ($ dbcnx) // اگر توصیفگر 0 باشد، اتصال نصب نشده است

// نمایش هشدار

اکو ("

B در حال حاضر سرور پایگاه داده در دسترس نیست، بنابراین نمایش صحیح صفحه غیر ممکن است.");

اگر (mysql_close ($ dbcnx)) // اتصال را شکستن

echo ("اتصال به پایگاه داده قطع شده است")؛

اکو ("او موفق به تکمیل اتصال")؛

1.3 ایجاد یک پایگاه داده. ایجاد ویژگی پایگاه داده

فرمان - ایجاد یک پایگاه داده تنها به مدیر سرور در دسترس است، و در اکثر میزبان آن را غیر ممکن است برای انجام آن غیر ممکن است:

ایجاد نام پایگاه داده بر اساس

یک پایگاه داده جدید را با نام نام اتصال ایجاد می کند.

یک مثال از کار با این ویژگی:

mysql_query ("ایجاد پایگاه داده $ dbname")؛

توصیه می شود از Apostrophes در همه جا ("SQL - Command") به عنوان محدود کننده های خطوط حاوی دستورات SQL استفاده کنید. این می تواند اطمینان حاصل شود که هیچ متغیر بدون $ به طور تصادفی از بین می رود (I.E. آن را با ارزش آن جایگزین نخواهد شد)، و ایمنی اسکریپت ها افزایش می یابد.

Create Database Cred Cred Cred Command فقط به Superuser در دسترس است، و غیر ممکن است برای انجام یک کاربر ساده در اکثر کاربران میزبانی. این فقط برای مدیر سرور در دسترس است.

برای آزمایشات، یک پایگاه داده TestBase را با انجام یک پرس و جو SQL از خط فرمان ایجاد کنید. برای انجام این کار، وارد سیستم MySQL شوید و MySQL را در خط فرمان وارد کنید:

mySQL\u003e ایجاد TestBase پایگاه داده؛

پس از آن، باید شماره گیری کنید:

mySQL\u003e استفاده از TESTBASE؛

پایگاه داده ایجاد شده است:



1.4 پایگاه داده را انتخاب کنید. تابع mysql_select_db.

قبل از ارسال درخواست اول به سرور MySQL، باید مشخص کنید کدام پایگاه داده ای که ما می خواهیم کار کنیم. برای این منظور، تابع mysql_select_db در نظر گرفته شده است:

bool mysql_select_db (String $ database_name [، resource $ link_identifier])

او پی اچ پی را مطلع می کند که در عملیات های بیشتر با اتصال $ link_identifier استفاده می شود $ database_name.

با استفاده از این تابع معادل تماس یک دستور استفاده در یک پرس و جو SQL است، I.E. تابع mysql_select_db یک پایگاه داده را برای کار بیشتر انتخاب می کند و تمام پرسشنامه های SQL بعدی به پایگاه داده انتخاب شده اعمال می شود. تابع نام پایگاه داده انتخاب شده به عنوان استدلال و توصیفگر اتصال منابع را می گیرد. این تابع با عملیات موفقیت آمیز و نادرست درست می شود - در غیر این صورت:

// کد اتصال با پایگاه داده

اگر (! mysql_select_db ($ dbname، $ dbcnx))

// نمایش هشدار

اکو ("

B در حال حاضر پایگاه داده در دسترس نیست، بنابراین صفحه نمایش صحیح امکان پذیر نیست.");

1.5 خطاهای پردازش

اگر اشتباهات در طول کار با MySQL رخ دهد (به عنوان مثال، دستورات متعادل نیستند و یا پارامترهای کافی وجود ندارد)، سپس پیام خطا و شماره آن را می توان با استفاده از دو توابع شرح داده شده در زیر به دست آورد.

مهم است که با دقت و استفاده از این توابع به موقع استفاده کنید، زیرا در غیر این صورت اشکال زدایی اسکریپت ها ممکن است پیچیده تر شود.

● تابع:

int mysql_errno ()

تعداد آخرین خطای ضبط شده را باز می گرداند. شما نمیتوانید شناسه اتصال $ link_identfier را مشخص کنید اگر تنها یک اتصال در طول زمان اجرا اسکریپت نصب شده باشد.

● تابع:

رشته mysql_error ()

یک عدد را باز می گرداند، بلکه یک رشته حاوی متن پیام خطا است. مناسب است که در مقاصد اشکال زدایی اعمال شود. معمولا MySQL_Error با طراحی یا Die () استفاده می شود، به عنوان مثال:

mysql_connect ("localhost"، "کاربر"، "رمز عبور")

یا DIE ("خطا اتصال به یک پایگاه داده:" .mysql_error ())؛

اپراتور @، به طور معمول، برای سرکوب هشدار استاندارد استفاده می شود که ممکن است در صورت خطا رخ دهد.

در آخرین نسخه های هشدار RNR در توابع MySQL به طور پیش فرض ثبت نشده است.

1.6 اتصال به MySQL. فایل ( config.php )

معمولا در سایت چندین اسکریپت وجود دارد که شما نیاز به دسترسی به پایگاه داده دارید.

کد مسئول اتصال به MySQL توصیه می شود که در یک فایل جداگانه برجسته شود و سپس با استفاده از تابع شامل اسکریپت های مورد نظر، ارتباط برقرار کنید.

این امر منطقی است که توابع را برای اتصال، انتخاب و ایجاد یک پایگاه داده به همان فایل (config.php) قرار دهیم، جایی که متغیرها با نام سرور Dlblocation $ اعلام می شوند، نام کاربری $ dbuser، password $ dbpasswd و نام نام پایگاه داده DBNAME $:

لیست config.php:

//config.php کد فایل حاوی پارامترهای اتصال با سرور و انتخاب پایگاه داده

// پیام های خطا را به مرورگر نمایش می دهد

$ dblocation \u003d "localhost"؛ // نام ارائهکننده

$ dbname \u003d "insert base name" // نام پایگاه داده: ایجاد شده یا قبلا موجود است

$ dbuser \u003d "root"؛ // نام کاربری پایگاه داده

$ dbpasswd \u003d ""؛ //کلمه عبور

// اتصال به سرور پایگاه داده را وارد کنید

// فشار نماد خروجی خطا @ قبل از فراخوانی تابع

[ایمیل محافظت شده]_Connect ($ dlblocation، $ dbuser، $ dbpasswd)؛

اگر (! $ dbcnx) // اگر توصیفگر 0 باشد، اتصال به سرور پایگاه داده نصب نشده است

// نمایش هشدار

اکو ("

در حال حاضر، سرور پایگاه داده در دسترس نیست، بنابراین صفحه صحیح صفحه غیر ممکن است.

");

// ایجاد یک پایگاه داده dbname $ - این تنها می تواند یک کاربر فوق العاده را انجام دهد

// اگر پایگاه داده در حال حاضر وجود دارد، یک خطای غیر بحرانی وجود خواهد داشت

mysql_query ("ایجاد پایگاه داده اگر $ dbname وجود ندارد ')؛

// کد اتصال با یک پایگاه داده: ما یک انتخاب یکپارچه از پایگاه داده تازه ایجاد شده یا پایگاه داده موجود را انجام می دهیم

// فشار نماد خروجی خطا @ قبل از فراخوانی تابع

اگر ( [ایمیل محافظت شده]_select_db ($ dbname، $ dbcnx)) // اگر توصیفگر 0 باشد، اتصال به پایگاه داده نصب نشده است

// نمایش هشدار

اکو ("

در حال حاضر، پایگاه داده در دسترس نیست، بنابراین نمایش صحیح صفحه غیر ممکن است.

");

// تابع کمکی کوچک که پیام را نمایش می دهد

// در مورد خطا در مورد یک خطای درخواست پایگاه داده

تابع putError ($ پیام)

echo ("")؛



2. انجام پرسش های پایگاه داده

2.1 ایجاد یک جدول. تابع ایجاد جدول:

نام جدول جدول را ایجاد کنید (نوع نامی نوع، نوع نامتپی)

این فرمان در پایگاه داده یک جدول جدید با ستون ها (زمینه ها) ایجاد می کند، که توسط نام های خود (نام) و انواع مشخص تعریف شده است. پس از ایجاد جدول، ممکن است سوابق متشکل از زمینه های ذکر شده در این دستور را اضافه کنید.

فهرست test_11.php. یک برنامه که یک جدول جدید را در پایگاه داده ایجاد می کند:

شامل "config.php"؛ // اتصال به سرور و انتخاب پایگاه داده

mysql_query ("ایجاد جدول اگر مردم وجود ندارد

iD Int auto_increment کلید اصلی،

یا می میرند ("خطای MySQL:" .mysql_error ())؛



این اسکریپت یک میز جدید را با دو فیلد ایجاد می کند. فیلد اول دارای نوع int (integer) و نام نام است. دوم - متن متن (رشته متن) و نام نام.

اگر جدول وجود داشته باشد، طراحی یا Die () کار خواهد کرد.

عبارت اختیاری اگر بیش از حد باشد، اگر مشخص شود، سرور MySQL می گوید که نباید یک پیام خطا ایجاد کند اگر جدول با نام مشخص شده در پایگاه داده وجود داشته باشد.

MySQL یکی از انواع پایگاه های داده های ارتباطی است. MySQL یک سرور است که کاربران مختلف می توانند ارتباط برقرار کنند.

هنگامی که شما به اینترنت وصل می شوید، ورود و رمز عبور را وارد کنید، و همچنین نام سرور که به آن متصل می شوید؟ هنگام کار با MySQL، همان سیستم استفاده می شود.

نقطه دیگر: یک پایگاه داده ارتباطی چیست؟ ابزار ارتباطی بر اساس جداول. ویرایشگر معروف اکسل الکترونیکی الکترونیکی از مایکروسافت در واقع ویرایشگر پایگاه های داده های ارتباطی است.

اتصال به سرور MySQL

برای اتصال به سرور MySQL، تابع mysqli_connect () در PHP استفاده می شود. این ویژگی سه استدلال را دریافت می کند: نام سرور، نام کاربری و رمز عبور.

تابع mysqli_connect () شناسه اتصال را باز می کند، آن را در یک متغیر ذخیره می شود و برای کار با پایگاه های داده استفاده می شود.

کد اتصال به سرور MySQL:

$ link \u003d mysqli_connect ("localhost"، "root"، "")؛

در این مورد، من بر روی یک کامپیوتر محلی در Denwere کار می کنم، بنابراین نام میزبان Localhost، نام کاربر ریشه است، و رمز عبور نیست.

پس از اتمام کار با MySQL، اتصال نیز باید بسته شود. برای بستن اتصال، تابع mysqli_close () استفاده می شود. مثال را گسترش دهید:

$ link \u003d mysqli_connect ("localhost"، "root"، "")؛ اگر (! $ لینک) مرگ ("خطا")؛ mysqli_close ($ لینک)؛

در اینجا ما شناسه را برای حقیقت تأیید کرده ایم، اگر چیزی با اتصال ما اشتباه باشد، برنامه اجرا نخواهد شد، عملکرد Die () اجرای آن را متوقف می کند و یک پیام خطا را به مرورگر نشان می دهد.

خطاهای اتصال

برای بررسی اتصال، توابع زیر استفاده می شود:

  • mysqli_connect_errno () - کد خطا از آخرین تلاش اتصال را باز می کند. بدون خطا صفر صفر است.
  • mysqli_connect_error () - توضیحات آخرین خطای اتصال به سرور MySQL را باز می گرداند.
تعریف ("میزبان"، "localhost")؛ تعریف ("db_user"، "root")؛ تعریف ("db_password"، "")؛ تعریف ("DB"، "تستر")؛ $ link \u003d mysqli_connect (میزبان، db_user، db_password، db)؛ / * بررسی اتصالات * / if (mysqli_connect_errno ()) (printf ("failed s \\ n"، mysqli_connect_error ()؛ خروج ()؛) else (printf ("مدیریت شده به اتصال:٪ s \\ n" ، mysqli_get_host_info ($ لینک))؛)

تابع mysqli_get_host_info () یک رشته حاوی نوع اتصال مورد استفاده را باز می کند.

همچنین توجه داشته باشید، با استفاده از فرمان تعریف، تمام اتصالات را در ثابت ها ذخیره کردم. هنگامی که شما پروژه های بزرگ را می نویسید، و به سرور MySQL متصل می شوید بسیاری از فایل ها، مناسب است که تنظیمات اتصال را در یک فایل جداگانه ذخیره کنید و آن را با استفاده از تابع شامل یا نیاز به آن وارد کنید.

پایگاه داده را انتخاب کنید

سرور MySQL ممکن است چندین پایگاه داده داشته باشد. اول از همه، ما باید انتخاب کنیم که پایه ای را که نیاز داریم کار کنیم. در PHP، برای این، در تابع mysqli_connect ()، پارامتر دیگری وجود دارد - نام پایگاه داده.

من بر روی کامپیوتر من از طریق phpmyadmin به نام تستر ایجاد کردم. اتصال به آن:

$ link \u003d mysqli_connect ("localhost"، "root"، ""، "tester")؛ اگر (! $ لینک) مرگ ("خطا")؛ mysql_close ($ لینک)؛

بنابراین، ما انتخاب کرده ایم که پایگاه داده را کار کنیم. اما همانطور که می دانیم، پایگاه داده ارتباطی شامل جداول است، و در پایگاه داده ما هیچ جداول وجود ندارد. پایگاه داده خالی است، بدون جداول. جداول در آن باید به طور جداگانه اضافه شود. در اینجا اجازه دهید یک جدول را با پی اچ پی به آن اضافه کنیم.

ایجاد جدول

به نام پایگاه های MySQL، بخش SQL نشان دهنده زبان پرس و جو ساختار یافته است که به عنوان یک زبان پرس و جو ساختار یافته ترجمه شده است. در زبان SQL، ما درخواست ها و از برنامه PHP را برای ارسال آنها به سرور MySQL خواهیم نوشت.

برای ایجاد یک جدول، ما فقط باید دستور Create Table را مشخص کنیم. بیایید یک جدول را با نام کاربران در ستون های آن ایجاد کنیم که ورود به سیستم (ستون ورود) و رمزهای عبور (ستون رمز عبور) را ذخیره می کند.

$ query \u003d "ایجاد کاربران جدول (ورود به varchar (20)، رمز عبور varchar (20))"؛

در این کد، ما متغیر $ Query را به رشته متن اختصاص دادیم، که پرس و جو SQL است. ما یک جدول را با نام کاربران ایجاد می کنیم که شامل دو ستون ورود و رمز عبور، در هر دو نوع داده Varchar (20). ما بعدا درباره انواع داده ها صحبت خواهیم کرد، در حال حاضر من فقط توجه دارم که varchar (20) یک رشته از حداکثر طول 20 کاراکتر است.

برای ارسال درخواست ما به سرور MySQL، ما از تابع php mysqli_query () استفاده می کنیم. این ویژگی یک عدد مثبت را به دست می آورد اگر عملیات با موفقیت انجام شود و اگر خطایی رخ داده باشد (نحو پرس و جو اشتباه است یا برنامه هیچ حقوقی برای اجرای پرس و جو ندارد).

$ link \u003d mysqli_connect ("localhost"، "root"، ""، "tester")؛ اگر (! $ لینک) مرگ ("خطا")؛ $ query \u003d "ایجاد کاربران جدول (ورود به varchar (20)، رمز عبور varchar (20))"؛ mysqli_Query ($ query)؛ mysqli_close ($ لینک)؛

پرس و جو SQL لازم نیست که در متغیر ثبت شود، می توان آن را بلافاصله به عنوان استدلال تابع mysql_query () نوشته شود. فقط کد ارسال قابل خواندن خواهد بود.

این اسکریپت یک اشکال دارد - او چیزی را به مرورگر نمی برد. بیایید یک پیام اضافه کنیم:

$ link \u003d mysqli_connect ("localhost"، "root"، ""، "tester")؛ اگر (! $ لینک) مرگ ("خطا")؛ $ query \u003d "ایجاد کاربران جدول (ورود به varchar (20)، رمز عبور varchar (20))"؛ اگر (mysqli_query (query)) echo "جدول ایجاد شده است."؛ ECHO ECHO "جدول ایجاد نشده است."؛ mysqli_close ($ لینک)؛

اگر ما این اسکریپت را برای اعدام راه اندازی مجدد کنیم، یک پیام را در مرورگر مشاهده خواهیم کرد: "جدول ایجاد نشده است." واقعیت این است که جدول زمانی که شما برای اولین بار شروع می کنید، ایجاد شده است و امکان ایجاد یک جدول با همان نام وجود ندارد. ما با یک وضعیت خطا مواجه شدیم، به این معنی است که وقت آن است که در مورد پردازش خطا هنگام کار با MySQL صحبت کنیم.

پردازش خطا

هنگامی که اشکال زدایی برنامه، ما ممکن است به اطلاعات دقیق خطا نیاز داشته باشیم. هنگامی که یک خطا در MySQL رخ می دهد، سرور پایگاه داده شماره خطا و رشته را با توضیحات آن تنظیم می کند. برای دسترسی به این داده ها در PHP، توابع خاصی وجود دارد.

  • mysqli_errno () - شماره خطا را باز می گرداند.
  • mysqli_error () - یک رشته را با یک توضیح خطا بازگرداند.

حالا اجازه دهید تابع mysql_error () را به اسکریپت ما اضافه کنیم:

$ link \u003d mysql_connect ("localhost"، "root"، ""، "tester")؛ اگر (! $ لینک) مرگ ("خطا")؛ $ query \u003d "ایجاد کاربران جدول (ورود به varchar (20)، رمز عبور varchar (20))"؛ اگر (mysqli_query (query)) echo "جدول ایجاد شده است."؛ EXCO ECHO "جدول ایجاد نشده است:" .mysqli_error ()؛ mysqli_close ($ لینک)؛

در حال حاضر اسکریپت ما به رشته مرورگر بازگشت: "جدول ایجاد نشده است: جدول" کاربران "در حال حاضر وجود دارد".

جدول را حذف کنید

بنابراین، ما در حال حاضر جدول شما نیازی نیست. وقت آن رسیده است تا بتوانید جداول را از پایگاه داده حذف کنید.

برای حذف جدول، از دستور Drop Table استفاده کنید، به دنبال آن نام جدول.

$ link \u003d mysqli_connect ("localhost"، "root"، ""، "tester")؛ اگر (! $ لینک) مرگ ("خطا")؛ $ query \u003d "کاربران قطره جدول"؛ اگر (! mysqli_query ($ query)) echo "خطا حذف جدول:" mysqli_error ()؛ EXCHO 'TABLE DELETED'؛ mysqli_close ($ لینک)؛

نتایج

بنابراین، ما اصول اولیه MySQL را تسلط دادیم. آنچه ما آموخته ایم:

  • اتصال به پایگاه داده MySQL با استفاده از تابع mysqli_connect ().
  • اتصال به سرور MySQL را با استفاده از تابع mysqli_close () ببندید.
  • ارسال درخواست SQL به سرور MySQL با استفاده از تابع mysqli_query ().
  • ما پرس و جو SQL را برای ایجاد یک جدول آموختیم: ایجاد جدول.
  • ما درخواست SQL را برای حذف جدول آموختیم: جدول قطره.
  • ما یاد گرفتیم که چگونه خطاهای را با استفاده از توابع mysqli_errno () و mysqli_error () پردازش کنیم.

سپس ما جزئیات نوع داده های MySQL را در نظر خواهیم گرفت.

ما درس زیر را می خوانیم:

3 روش برای اتصال به MySQL با پی اچ پی با نمونه های کد


برای شروع استفاده از پایگاه داده MySQL، ابتدا باید درک کنید که چگونه از برنامه PHP کاربر (اسکریپت) به این پایگاه داده MySQL متصل شوید.

این مقاله سه روش زیر را شرح می دهد، و همچنین نمونه های مربوط به کد پی اچ پی، که توضیح می دهد نحوه اتصال به پایگاه داده خود را از پی اچ پی.

برای همه نمونه های زیر، ما به پایگاه داده MySQL موجود در حال حاضر متصل خواهیم شد. توجه: آنچه که در اینجا توضیح داده شده است نیز با Mariadb، و همچنین با MySQL کار خواهد کرد.

1. با استفاده از فرمت MySQLI به پی اچ پی وصل شوید
*mysqli به معنی MySQL بهبود یافته است

فایل mysqli.php زیر را ایجاد کنید

connect_error) (Die ("ERROR: قادر به اتصال نیست:" $ connn-\u003e connect_error)؛) echo "متصل به پایگاه داده.
"؛ $ نتیجه \u003d $ conn-\u003e query (" انتخاب ID از goroda ")؛ echo" تعداد ردیف ها: $ result-\u003e num_rows "؛ $ نتیجه-\u003e بستن ()؛ $ conn-\u003e بستن ()؛؟\u003e در کد بالا:

  • mySQLI - این ویژگی یک اتصال جدید را با استفاده از فرمت MySQLI آغاز می کند. تابع طول می کشد چهار استدلال:
    1. نام میزبان Localhost که در آن پایگاه داده MySQL در حال اجرا است
    2. نام - نام کاربری MySQL برای اتصال
    3. گذرگاه - رمز عبور برای کاربر MySQL
    4. dB - پایگاه داده MySQL برای اتصال.
  • qVery - تابع پرس و جو MySQL. در این مثال، ما یک شناسه ستون را از پایگاه داده های شهر انتخاب می کنیم.
  • در نهایت، ما تعداد ردیف های انتخاب شده را با استفاده از متغیر num_rows به عنوان یک نتیجه نشان می دهیم. ما همچنین نتیجه و متغیر اتصال را قطع می کنیم، همانطور که در بالا نشان داده شده است.
هنگامی که شما در بالا mysqli.php از مرورگر خود تماس بگیرید، خروجی زیر را مشاهده خواهید کرد که نشان می دهد که پی اچ پی قادر به اتصال به پایگاه داده MySQL و دریافت اطلاعات است.

متصل به پایگاه داده تعداد ردیف ها: 6 2. اتصال از PHP MySQL PDO Extension
*PDO به معنی اشیاء داده PHP است

درایور PDO_MYSQL Implements PDO رابط ارائه شده توسط PHP برای اتصال از اسکریپت پی اچ پی خود را به پایگاه داده MySQL.

فایل mysql-pdo.php زیر را ایجاد کنید:

setattribute (PDO :: attr_errmode، PDO :: Ermode_Exception)؛ echo "متصل به پایگاه داده.
"؛ $ sql \u003d" ID را از Goroda انتخاب کنید "؛ چاپ" فهرست فهرست:
"؛ foreach ($ conn-\u003e query ($ sql) به عنوان $ ردیف) (چاپ $ ردیف [id]."
"؛) $ conn \u003d null؛) گرفتن (echo" خطا: قادر به اتصال نیست: "$ err-\u003e getMessage ()؛)؟\u003e در بالا:

  • pDO جدید - یک شیء جدید PDO ایجاد کنید که سه استدلال زیر را انجام می دهد:
    1. mySQL Connect String: این در فرمت "MySQL: host \u003d localhost؛ dbname \u003d db" خواهد بود. در مثال بالا، DB در Localhost کار می کند و ما به پایگاه داده DB متصل می شویم.
    2. نام MySQL برای اتصال
    3. رمز عبور کاربر MySQL
  • متغیر $ SQL - ایجاد یک پرس و جو SQL که می خواهید انجام دهید. در این مثال، یک شناسه ستون را از جدول شهر انتخاب می کنیم.
  • پرس و جو ($ SQL). در اینجا ما درخواست SQL را انجام می دهیم، که ما فقط ایجاد کرده ایم.
  • برای هر. در اینجا نتیجه حاصل از فرمان پرس و جو بالا را به دست می آوریم و آن را در متغیر $ ردیف ذخیره می کنیم و سپس آن را با استفاده از اکو تولید می کنیم.
  • در MySQL PDO برای بستن اتصال، به سادگی متغیر $ conn را به null تنظیم کنید.
هنگام تماس با اسکریپت mysqli.php بالا از مرورگر خود، خطوط زیر را خواهید دید؛ آنها به این معنی است که پی اچ پی قادر به اتصال به پایگاه داده MySQL و دریافت اطلاعات بود:

متصل به پایگاه داده فهرست شناسه: 1 2 3 4 5 6 3. اتصال از PHP C استفاده از توابع منسوخ MySQL

از این روش استفاده کنید فقط اگر از نسخه قدیمی پی اچ پی استفاده کنید و به دلایلی از شما نمیتوانید آن را به نسخه جدید اضافه کنید. توصیه می شود از روش شماره 2 و روش شماره 3 استفاده کنید، به جای این روش نشان داده شده است. من این روش را فقط برای مرجع تبدیل کردم، و نه به عنوان یک توصیه برای استفاده.

این فرمت خاص از PHP 5.5 منسوخ شده است. اما، با شروع از نسخه PHP 7.0، آن را حتی کار نمی کند، زیرا حذف شده است. با شروع از PHP 5.5، هنگامی که از این توابع استفاده می کنید، یک خطای e_deprecated را تولید می کند.

ایجاد mysql.php:

"؛ $ نتیجه \u003d mysql_query (" انتخاب ID از Goroda ")؛ $ row \u003d mysql_fetch_row ($ نتیجه)؛ echo" id 1: "، $ ردیف،"
\\ n "؛ mysql_close ($ conn)؛؟\u003e در بالا:

  • ویژگی mysql_connect سه استدلال را انجام می دهد:
    1. نام میزبان که در آن پایگاه داده MySQL در حال اجرا است؛
    2. نام کاربری MySQL برای اتصال؛
    3. رمز عبور برای کاربر MySQL در اینجا آن را به پایگاه داده MySQL متصل می کند که در سرور محلی با استفاده از نام کاربری و رمز عبور انجام می شود.
  • تابع mysql_select_db. به عنوان نام به شرح زیر، پایگاه داده ای را که می خواهید اتصال را انتخاب کنید، انتخاب می کند. معادل فرمان "استفاده". در این مثال، ما به پایگاه داده DB متصل می شویم.
  • تابع mysql_query برای مشخص کردن پرس و جو MySQL شما استفاده می شود. در این مثال، ما یک شناسه ستون را از پایگاه داده های شهر انتخاب می کنیم.
  • mysql_fetch_row. از این ویژگی برای استخراج ردیف از پرس و جو SQL استفاده کنید که ما فقط ایجاد کرده ایم.
  • در نهایت، اتصال را با استفاده از دستور mysql_close، همانطور که در بالا نشان داده شد، ببندید.
هنگامی که شما از MySQL-Legacy.php از مرورگر خود تماس می گیرید، خروجی زیر را مشاهده خواهید کرد که نشان می دهد که پی اچ پی قادر به اتصال به پایگاه داده MySQL و دریافت اطلاعات است:

متصل به پایگاه داده ID 1: 1 این راه را می توان به MySQL متصل کرد. من تکرار می کنم، بهتر است از دو روش اول استفاده کنید. در باره

در این مقاله، ما راه هایی را برای دسترسی به جداول پایه این MySQL با استفاده از زبان پرس و جو SQL در نظر خواهیم گرفت. SQL مخفف است که به طوری که "آشکار" - یک زبان پرس و جو ساختار یافته است.
در زبان PHP، تعدادی از توابع با پیشوند "MySQL" وجود دارد. ما برای توجه به درخواست ها بیشتر از آنها نیازی نداریم. تابع، بدون آن در زبان PHP، اعدام پرسش های SQL به سادگی غیر ممکن خواهد بود:

منابع mysql_query

این ویژگی یک درخواست پایگاه داده را ارسال می کند و شناسه منابع را در صورت موفقیت گردش می دهد.
به منظور اتصال به پایگاه داده MySQL، باید توالی زیر را انجام دهید:

$ host \u003d "localhost"؛ // نام میزبان (مشخص شده توسط ارائه دهنده) $ پایگاه داده \u003d "db_name"؛ // نام پایگاه داده که شما باید $ کاربر \u003d "user_name" را ایجاد کنید؛ // نام کاربری شما مشخص شده یا یک ارائه دهنده $ PSWD \u003d "YOUR_PASS" شما تعریف شده است؛ // رمز عبور شما را مشخص کرده اید $ dbh \u003d mysql_connect ($ host، $ کاربر، $ pswd) یا Die ("من نمی توانم به MySQL متصل باشم")؛ mysql_select_db ($ پایگاه داده) یا DIE ("من نمی توانم به پایگاه داده متصل باشم")؛

بنابراین mysql_connect ()- عملکرد برای اتصال به سرور MySQL در میزبانی شما.
ولی mysql_select_db () پایگاه داده را در سرور اتصال انتخاب می کند.
به عبارت دیگر، شما به سرور متصل می شوید، پایگاه داده را انتخاب کرده و شروع به کار کنید.
تابع die () نامیده می شود اگر یک خطا پیامی را که به پنجره مرورگر مشخص کرده اید، نشان می دهد.
تابع برای تکمیل با پایگاه های داده استفاده می شود:

mysql_close ($ dbh)؛

اینجا $ dbh - توصیفگر، که هنگام اتصال یک تابع را بازگرداند mysql_connect..
پس از شروع بررسی شروع، بیایید شروع به بررسی SQL پرس و جو کنیم.
برای انجام این کار، اول از همه، شما باید یک پایگاه داده را با یک نام خاص ایجاد کنید. و در آن، یک جدول ایجاد کنید، همچنین با یک نام خاص. در نمونه های ما ما با جدول تماس خواهیم گرفت my_sql_table. برای ایجاد این جدول، اجازه دهید Localhost ما را در phpmyadmin اجرا کنیم.

ایجاد جدول `my_sql_table` (int no nul null، // شناسه بعدی پرونده های بعدی" Firstname` varchar (50) no null، // text field varchar `varchar` varchar (50) no null، // حداکثر 50 کاراکتر اصلی اصلی ( `ID`) // کلید اولیه - شناسه شناسه)؛

بنابراین جدول ایجاد شده است. ما اولین درخواست را اجرا خواهیم کرد، که بلافاصله به صورت یک کد پی اچ پی صادر می شود:

\\ n "؛ echo" نام: "$ ردیف [" firstname "]."
\\ n "؛ echo" نام خانوادگی: "$ ردیف [" نام خانوادگی "]."


\\ n "؛)؟\u003e

ما کد فایل پی اچ پی را تجزیه و تحلیل خواهیم کرد firstsql.php.. بیایید با پرس و جو واقعی به جداول پایگاه داده (پایگاه داده) شروع کنیم.

$ query \u003d "select * from` my_sql_table"؛

این درخواست می تواند رمزگشایی شود: از جدول انتخاب کنید my_sql_table DB همه نوشته ها از همه زمینه ها. بدین ترتیب نشانه * پس از انتخاب کلمه به معنی "انتخاب مطلقا همه چیز". بنابراین درخواست تشکیل شده است. حالا باید اجرا شود:

$ res \u003d mysql_query ($ query)؛

در صورت اجرای موفقیت آمیز عملکرد پرس و جو mysql_query () یک شناسه منبع به ما می دهد $ res.
این باید به عنوان یک پارامتر به تابع منتقل شود mysql_fetch_array (). نام این تابع برای خود صحبت می کند. کسانی که. آن را تشکیل می دهد و یک آرایه را از جدول پایگاه داده می دهد. در مورد جدول ما، آرایه شامل تعدادی از عناصر برابر با تعداد سوابق (رشته ها) در جدول و حاوی مقادیر است شناسه، نام خانوادگی، نام خانوادگی برای هر ردیف جدول. بنابراین، کد زیر:

در حالی که ($ row \u003d mysql_fetch_array ($ res)) (شماره echo ":" $ ردیف ["id"]. "
\\ n "؛ echo" نام: "$ ردیف [" firstname "]."
\\ n "؛ echo" نام خانوادگی: "$ ردیف [" نام خانوادگی "]."


\\ n "؛)

شما می توانید در مورد این نظر بدهید: در حالی که متغیر $ ردیف وارد شده توسط ایالات متحده دریافت نتایج عملیات صفر mysql_fetch_row شما باید یک مقدار فیلد را در مرورگر صادر کنید $ ردیف ["id"]، $ ردیف ["firstname"]، $ ردیف ["نام خانوادگی"] از طريق اکو.
اگر پرس و جو مانند این انجام شود:

$ query \u003d "انتخاب نامی از 'my_sql_table"؛

این به این معنی است که تنها مقادیر فیلد اول از تمام خطوط انتخاب می شوند.
در نتیجه، کد قبلی باید بازنویسی شود:

$ res \u003d mysql_query ($ query)؛ در حالی که ($ row \u003d mysql_fetch_array ($ res)) (echo "نام:". $ ردیف ["firstname"]. "
\\ n "؛)

اگر می خواهید خطوط جدول را با یک مقدار خاص انتخاب کنید شناسه نام خانوادگی (نام خانوادگی) کجاست؟ پتروفدرخواست به شرح زیر بازنویسی خواهد شد:

$ query \u003d "select id from` my_sql_table" که نام خانوادگی \u003d "Petrov" "؛

اما اگر شما نیاز به دانستن نام خانوادگی کسی که تحت شماره است، به عنوان مثال، 5، پس از آن درخواست مانند این خواهد بود:

$ query \u003d "انتخاب نام خانوادگی از` my_sql_table` که ID \u003d 5"؛

در این مورد، شما می دانید که نتیجه پرس و جو تنها یک خط از جدول خواهد بود. کسانی که. هیچ منطقی برای سازماندهی چرخه استفاده نمی کند در حالی که. و پردازش پرس و جو به شرح زیر خواهد بود

$ res \u003d mysql_query ($ query)؛ $ row \u003d mysql_fetch_row ($ res)؛ echo "نام خانوادگی پنجم شخص در لیست:". $ ردیف "\\ n"؛

اینجا به جای mysql_fetch_array () ما اعمال کردیم mysql_fetch_row (). کسانی که. مقدار فیلد (یا زمینه) یک رشته خاص را دریافت کنید. از آنجا که ما یک میدان داشتیم - نام خانوادگی - ما می توانیم به تنها عنصر آرایه $ ردیف اشاره کنیم $ ردیف؛.

بنابراین، نمونه های معمول ترین پرسش های MySQL را در نظر بگیرید. در نظر گرفتن بر اساس جدول صرف می شود my_sql_table:
1. اضافه کردن به جدول middle_sql_table middle_name (Patronymic) بعد از نام خانوادگی:

$ query \u003d "تغییر جدول" my_sql_table` add` middle_name`
varchar (50) نه صفر پس از `نام خانوادگی

2. اکنون فیلد نام خانوادگی را از جدول my_sql_table حذف کنید:

$ query \u003d "تغییر جدول" my_sql_table 'drop `نام خانوادگی'؛

3. ورودی ها را از جدول my_sql_table با نام خانوادگی حذف کنید:

$ query \u003d "حذف از my_sql_table" که نام خانوادگی \u003d "Sidorov" "؛

4. علاوه بر نشانه های برابری، همچنین "بیشتر" یا "کمتر"، در زبان درخواست های MySQL یک مفهوم وجود دارد " شبیه به". سوابق را از جدول my_sql_table انتخاب کنید، جایی که در نام خانوادگی یافت می شود" dor" :

$ query \u003d "select * from * my_sql_table" که نام خانوادگی مانند "٪ dor٪" "؛

در اینجا حضور " % "در آغاز و پایان" DOR "و به این معنی است که درخواست دقیقا" Dor "نگاه خواهد کرد، و در ابتدا، دیر یا وسط نام خانوادگی آن، مهم نیست. مثال زیر را در نظر بگیرید
5. سوابق را از جدول my_sql_table با نام خانوادگی که شروع می شود را انتخاب کنید پ. توجه به محل " % ":

$ query \u003d "select * from * my_sql_table" که نام خانوادگی مانند "p٪" "؛

6. حداکثر مقدار را محاسبه کنید. شناسه:

$ query \u003d "select max (id) from` my_sql_table`"؛

7. محاسبه تعداد فیلدهای my_sql_table با نام خانوادگی که شروع می شود پ.

$ query \u003d "select count (*) از my_sql_table 'که نام خانوادگی مانند" p٪ "؛

8. حذف جدول my_sql_table:

$ query \u003d "drop table` my_sql_table`"؛

برای پرس و جو 1-3 در زبان PHP، کافی است به سادگی اجرای درخواست:

mysql_query (query $)؛

ما نمونه های مشخصه ای از درخواست ها را بررسی کردیم. من اعتقاد دارم، با کمک آنها، به دنبال منطق ابتدایی، شما می توانید درخواست های پیچیده تر را به جداول پایگاه داده MySQL انجام دهید.




هنوز سوالاتی وجود دارد یا چیزی غیر قابل درک است - به ما خوش آمدید