داده ها را به جدول SQL PHP اضافه کنید. ضبط پی اچ پی به پایگاه داده MySQL. نمونه های عملی صرفه جویی در ورودی سفارشی در پایگاه داده

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


در درس گذشته، من به شما در مورد چگونگی نصب Denver در رایانه خود، نحوه ایجاد پایگاه داده خود، کاربر برای آن، نحوه ایجاد یک جدول در پایگاه داده و ما آن را با یک ورودی پر کردیم.

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

تبدیل از کلمات به مورد شروع به شروع.

داده های سفارشی را به پایگاه داده MySQL از صفحه وب اضافه کنید

مرحله اول: ایجاد کنید فرم HTML برای ورود اطلاعات

از همان ابتدا، ما باید برای کار با PHP، MySQL و برای آزمایش کد نوشته شده در کامپیوتر محلی آماده شویم. برای این:

1. اجرای Denwer بر روی کامپیوتر شما.

2. باز کن دیسک مجازی، ایجاد شده توسط دنور (به عنوان مثال، من یک دیسک "z"). آن را بیشتر باز کنید: صفحه اصلی - localhost - www - ایجاد وجود دارد پوشه جدید و به او نام بدهید (من نام "DB1" را خواهم داد).

3. اگر شما در Adobe Dreamweaver کار می کنید، سپس به مدیر سایت بروید، روی دکمه "New" کلیک کنید، مسیر را به پوشه تازه ایجاد شده به صورت یک راه انتخاب کنید، می توانید نام را به ذخیره - انجام دهید. پس از این همه، پوشه شما در قسمت راست Adobe Dreamweaver ظاهر می شود.

1. حالا ما معمولی را ایجاد خواهیم کرد فایل HTML (من آن را INFR_FORM.HTML و ذخیره در DB1 ایجاد شده در فقط پوشه ایجاد شده) و کد کد برای ورود اطلاعات وجود دارد. جدول کاربر پایگاه داده New_DB ما دارای 4 فیلد است که کاربر می تواند پر شود (فیلد ID به صورت خودکار پر می شود). بر اساس این، شما می توانید کد زیر را ایجاد کنید:

سند بدون عنوان










در اینجا در پارامتر "عمل" فرم ما فایل ثبت شده است form.php. این یک ابزار دستی است که ما بیشتر ایجاد خواهیم کرد.

اجازه دهید فایل style.css را ایجاد کنیم تا سبک های خود را به شکل ما ارائه دهیم. این در حال حاضر در کد متصل شده است، بنابراین تنها برای ایجاد آن باقی می ماند، آن را در همان پوشه به عنوان فایل HTML قرار دهید و کد زیر را در آن ثبت کنید:

بدن (عرض: 400 پیکسل؛ حاشیه: 0 خودکار؛ پس زمینه: # f8f4b6؛) برچسب (نمایش: بلوک؛ شناور: سمت چپ؛ عرض: 150 پیکسل؛ پد: 0 10 پیکسل؛ حاشیه: 18px 0؛ text-align: right؛) # ارسال (شناور: راست؛ حاشیه: 5px 50px 10px 0؛)

در حال حاضر فرم به نظر می رسد این است:

با این حال، اگر شما داده ها را وارد کنید و سعی کنید فرم را بفرستید، یک اشکال را خواهید دید، زیرا هیچ فایل form.php دروغ گفتن در دایرکتوری اسکریپت وجود ندارد.

یک فایل پردازش را ایجاد کنید کار بعدی ما است.

2. بیایید داخل پوشه باشیم db1 یک پوشه به نام ایجاد کنید "اسکریپت ها". در آن، ما تمام اسکریپت های تعامل ما را با پایگاه داده MySQL ذخیره خواهیم کرد.

پس از ایجاد پوشه، یک فایل پی اچ پی جدید ایجاد کنید و آن را در پوشه اسکریپت زیر نام ذخیره کنید form.php.

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

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

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

خطا در اتصال به پایگاه داده! ". mysql_error ()."

")؛ mysql_select_db (" new_db ") // پارامتر در براکت (" نام پایه ای که شما متصل می کنید ") یا مرگ ("

خطای انتخاب پایگاه داده! ". mysql_error ()."

"); ?>

حالا اجازه دهید به فایل form.php بروید و فایل connection.php را با استفاده از کد زیر وصل کنید:

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

اگر یک پیام خطا را دیدید، صحت تمام پارامترها (نام کاربری، رمز عبور، نام میزبان: localhos، نام پایگاه داده) را بررسی کنید و تشخیص دهید که دنور شما روشن است.

3. ما با موفقیت با پایگاه داده MySQL ارتباط برقرار کردیم، و اکنون نیاز داریم داده های وارد شده در فرم را به Handler فایل ما وارد کنید. این به ما کمک خواهد کرد تا ویژگی های "نام" که در سند HTML حضور دارند.

برای به دست آوردن اطلاعات، ما از ویژه استفاده خواهیم کرد متغیر پی اچ پیفرض بر ما با تمام اطلاعات از فرم وب. این متغیر "$ _request" نامیده می شود.

پس از اتصال فایل connection.php، در فایل form.php، کد زیر را بنویسید:

$ first_name \u003d $ _REQUEST ["first_name"]؛ $ last_name \u003d $ _request ["last_name"]؛ $ ایمیل \u003d $ _REQUEST ["ایمیل"]؛ $ facebook \u003d $ _REQUEST [FACEBOOK]؛

4. ما داده ها را به فایل دریافت کردیم و آنها را به متغیرها فهرست کردیم. حالا شما نیاز دارید این داده ها را به جدول پایگاه داده MySQL ما ارسال کنید. برای این زیر، شما باید کد زیر را ثبت کنید:

$ insert_sql \u003d "وارد کردن به کاربران (first_name، last_name، ایمیل، فیس بوک)". "مقادیر (" ($ first_name) "،" ($ last_name) "،" ($ ایمیل) "،" ($ فیس بوک) ")؛"؛ mysql_query ($ insert_sql)؛

در اینجا، ابتدا یک درخواست را تشکیل می دهیم، می گوییم که ما باید متغیرهای متفاوتی را در زمینه های مربوطه جدول "کاربران" قرار دهیم. ما این درخواست را به متغیر "$ insert_sql" وارد می کنیم. و سپس با استفاده از یک تابع ویژه mysql_query، ما این درخواست را انجام می دهیم.

اگر شما در حال حاضر پر کنید و ارسال فرم، و سپس به جدول "کاربران" پایگاه داده خود نگاه کنید، پس شما یک ورودی جدید را مشاهده خواهید کرد که پس از ارسال آن ظاهر شد.

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

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

ثانیا، ما یک فیس بوک داریم اگر بعدا بخواهیم این اطلاعات را به عنوان یک پیوند نمایش دهیم، لازم است مراقب باشیم تا داده ها در این فیلد در فرمت صحیح ذخیره شوند (یعنی "، http://www.facebook.com/identifier در فیس بوک ") اما کاربر همیشه این اطلاعات را به عنوان ما نیاز ندارد. این می تواند وارد شود: "www.facebook.com / فیس بوک"، "facebook.com / فیس بوک در فیس بوک" یا به سادگی "/ شناسه در فیس بوک".

این شرایط باید اجتناب شود. برای انجام این کار، اجازه دهید کد ما را اعمال کنیم. ممکن است شکاف های اضافی ما با یک تابع برش داده شده است ترسیم کردنو صحت URL وارد شده را بررسی کنید تا فیس بوک یک تابع باشد preg_match. بنابراین، کل کد فایل فرم .PHP به نظر می رسد:

سند بدون عنوان ورودی جدید به پایگاه داده وارد شده است!

"; ?>

درباره تابع preg_match:
این یک تابع برای جستجو با عبارات منظم است.

اولین پارامتر در براکت یک عبارت منظم است، دوم - رشته ای که در آن شما نیاز به جستجو دارید.

این تابع تنها اولین تصادف را باز می کند: 0 - اگر هیچ مسابقه ای وجود نداشته باشد، 1 - اگر یک تصادف وجود داشته باشد.

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

در این درس این درس را تمام خواهم کرد. تمام فایل های این درس شما می توانید در منبع دانلود کنید (فقط فراموش نکنید که پارامترهای خود را در فایل connect.php اصلاح کنید).

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

نظرات خود را ترک کنید و با دوستان خود با استفاده از دکمه های شبکه های اجتماعی به اشتراک بگذارید.

موفقیت و جلسه در درس بعدی!

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

اضافه کردن نوشته ها با استفاده از phpmyadmin

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

به سرقت رفته اطلاعات جدید جدول باید به برنامه تحت حقوق مدیر برود. سپس پایگاه داده مورد نظر و جدول را در سمت چپ انتخاب کنید. پس از آن، در منوی بالا، از طریق "Paste" مورد بروید.

پس از آن، به منظور ورود به پایگاه داده MySQL، پنجره بعدی را برای تمام ستون های فیلد "value" پر کنید و "OK" را در زیر فشار دهید.

در تصویر فوق، می توان دید که جدول قابل تغییر "حیوانات" شامل دو ستون (زمینه ها): شناسه و نام. در بخش دوم، نوع هر یک از ستون ها مشخص شده است. ما باید فقط یک مقدار برای نام و نام خانوادگی داشته باشیم، زیرا ستون ID کلید اصلی است و برای آن، هنگام ایجاد یک جدول، یک AutoInColder تنظیم شده است. این به این معنی است که ارزش فیلد ID به صورت خودکار توسط MySQL تولید می شود و به مقدار عددی عدد صحیح قبلی اضافه می شود.

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

داده ها را با استفاده از پرس و جو SQL وارد کنید

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

ایجاد یک حیوان جدول (ID mediumint null null auto_increment، نام char (30) no null، کلید اولیه (ID))؛

ایجاد حیوانات جدول (ID Mindintint null null auto_increment،

نام char (30) null، کلید اولیه (ID))؛

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

کد درخواست:

به مقادیر my_db1`.`animal (`id`،` نام "را وارد کنید (null،" cat ")؛

وارد «my_db1» شوید. `حیوانات (` id`، `نام`) ارزش (null،" گربه ")؛

بیایید جزئیات بیشتری را مطالعه کنیم. در SQL، یک اپراتور ورودی برای وارد کردن یک خط جدید به جدول استفاده می شود. او به سرور اطلاع می دهد که در جدول پایگاه داده (my_db1. حیوانات) در فیلد ID مورد نیاز است و نام مقادیر مشخص شده (مقادیر (null، cat ") را وارد کنید.

توجه داشته باشید که ستون ID ما نشان دهنده مقدار عددی نیست، اما null، زیرا برای این زمینه ما "شامل" autofill (افزایش خودکار).

نحوه ضبط یک رکورد با پی اچ پی

همه در نظر گرفته شده توسط ما تنها یک "PROMUDE" به عمل اصلی است، که به صحنه "Highness Highness" زبان برنامه نویسی پی اچ پی می رود. به لطف او است که MySQL به عنوان DBMS چنین توزیع را در شبکه دریافت کرد.
رباط این دو تکنولوژی اینترنت، اکثر وب جهان را ساخته است. جایی که به نظر می رسد، همه جا آنها را پیدا خواهید کرد: در CMS مدرن، موتورهای "خود نوشته شده" و در سرور.

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

$ con_str \u003d mysql_connect ("localhost"، "root"، ""، "db1")؛ اگر (mysql_connect ("localhost"، "root")) (echo "hello !!"؛) mysql_select_db ("db1"، $ con_str)؛ $ query_str \u003d "Insert به 'db1```.`animal' (` id`، نام نام`) ارزش (null، "سگ") "؛ mysql_query ($ query_str)؛ mysql_close ()؛

$ con_str \u003d mysql_connect ("localhost"، "root"، ""، "db1")؛

اگر (mysql_connect ("localhost"، "root")) (

echo "سلام!" ؛

mysql_select_db ("db1"، $ con_str)؛

$ query_str \u003d. "به 'db1```````'animal' (` id`، `نام`) مقادیر (null،" سگ ")";

mysql_query ($ query_str)؛

mysql_close ()؛

این کد باید وارد شود فایل پی اچ پی و آن را در سمت سرور قرار دهید.

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

برای نشان دادن همه نمونه های توصیف شده از نوشتن به پایگاه داده MySQL با استفاده از PHP، ما از Gentelmen مجموعه ای از دنور استفاده کردیم. آن شامل سرور محلی Apache، MySQL Server، phpmyadmin و چند ابزار مفید برای ایجاد و آزمایش کد برنامه.

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

برای نوشتن آن در MySQL PHP "Courtesy" تمام مجموعه های مورد نیاز از توابع را ارائه داد. نکته اصلی این است که تازه واردان "سوزاندن" تازه واردان هنگام استفاده از SQL در کد برنامه، نوشتن نادرست درخواست ها، نقض نحوی و جایگزینی نشانه ها برای محافظ (نقل قول ها) است.

برای جلوگیری از ظهور موهای غیر ضروری "خاکستری مو" بر روی سر خود، بهتر است که صحت نوشتن یک پرس و جو را با استفاده از phpmyadmin بررسی کنید. برای انجام این کار، کد SQL را در ویرایشگر برنامه قرار دهید و آن را اجرا کنید. اگر چیزی اشتباه باشد، برنامه "سوگند" را آغاز خواهد کرد، یک رنگ قرمز را نشان می دهد و محل خطا را نشان می دهد.

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

در این راهنما، شما با چگونگی شروع به مدیریت پایگاه داده از خود آشنا خواهید شد پی اچ پیاسکریپت شما کشف خواهید کرد اضافه کردن ورود به جدول MySQL،استفاده كردن کد پی اچ پی. قبل از شروع، دستورالعمل های دیگر ما را بخوانید که مراحل اصلی کار با پی اچ پی و پایگاه های داده را نشان می دهند - از PHP به پایگاه داده MySQL (انگلیسی) متصل شوید.

قبل از شروع، حضور موارد زیر را بررسی کنید:

  • دسترسی به کنترل پنل میزبانی شما

مرحله 1 - ایجاد یک جدول

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

پس از ورود به phpmyadmin، شما یک تصویر مشابه را مشاهده خواهید کرد:

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

این ساده ترین راه برای ایجاد یک جدول است، برای کسب اطلاعات بیشتر در مورد ساختار جدول / پایگاه داده و کدام تنظیمات را می توان برای هر زمینه استفاده کرد، به مستندات رسمی phpmyadmin مراجعه کنید (انگلیسی).

در اینجا چند توضیح ساده از زمینه هایی که ما استفاده می کنیم، وجود دارد:

  • نام. - این نام فیلد شماست. این در بالای میز شما نمایش داده می شود.
  • نوع - شما می توانید نوع فیلد را اینجا تنظیم کنید. به عنوان مثال، ما انتخاب می کنیم varcharاز آنجا که در اینجا ما باید یک رشته را با نام وارد کنیم (که در آن حروف وجود دارد، نه اعداد).
  • طول / مقادیر. - برای تنظیم حداکثر طول ورود شما در این زمینه استفاده می شود.
  • فهرست مطالب - ما از شاخص اصلی برای "ID" ما استفاده می کنیم. هنگامی که یک جدول ایجاد می شود، توصیه می شود یک فیلد ID داشته باشید. این مورد برای فهرست سوابق در جدول زمانی که روابط بین جداول پیکربندی شده است، مورد استفاده قرار می گیرد. همچنین می تواند در اینجا اشاره شود "a_i"چه معنی افزایش خودکار.. این تنظیم به طور خودکار شاخص را افزایش می دهد (1،2،3،4 ...).

کلیک صرفه جویی. و جدول شما ایجاد خواهد شد.

مرحله 2 - ایجاد کد پی اچ پی و اضافه کردن ورود به جدول MySQL

گزینه 1 - روش mysqli

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

"mysqli_error ($ conn)؛) mysqli_close ($ conn)؛؟\u003e

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

بیایید با خط شروع کنیم 19 :

$ SQL \u003d "به دانش آموزان (نام، نام خانوادگی، ایمیل) مقادیر (" Thom "،" Vial "،" [ایمیل محافظت شده]")";

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

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

قسمت بعدی از ارزش ارزش های.. در اینجا ما از مقادیر ما در زمینه های قبلا مشخص شده استفاده می کنیم. بنابراین، هر فیلد ارزش آن را دریافت خواهد کرد. به عنوان مثال، در مورد ما، چیزی شبیه به آن خواهد بود: نام \u003d Thom، lastName \u003d vial، ایمیل \u003d [ایمیل محافظت شده] .

مهم است که یادآوری کنیم که ما فرم داریم درخواست SQLبا استفاده از کد پی اچ پی درخواست های SQL باید در نقل قول ها محصور شوند. در مثال ما، همه چیز بین نقل قول ها و پیاده روی پس از $ SQL \u003d این یک پرس و جو SQL است.

قسمت بعدی کد ( 20 – 22 رشته ها) درخواست ما را اجرا می کند و موفقیت اعدام پرسش را بررسی می کند:

اگر (mysqli_query ($ conn، $ sql)) (echo "رکورد جدید ایجاد شده با موفقیت"؛)

یک پیام در مورد موفقیت خوب نمایش داده می شود اگر درخواست به درستی اجرا شود.

و بخش نهایی ( 22 – 24 خطوط) پیام دیگری را نشان می دهد، در صورت اجرای ناموفق درخواست ما:

ELE (ECHO "ERROR:" $ SQL. "
"mysqli_error ($ conn)؛)

این کد یک پیام در مورد خطا را نمایش می دهد، در صورتی که چیزی اشتباه انجام شود.

گزینه 2 - روش Object Data PHP (P HP D ATA O Bject)

همانطور که در مثال قبلی، ابتدا باید به پایگاه داده متصل شویم، که هنگام ایجاد یک شیء جدید PDO انجام می شود - راهنمای قبلی در مورد چگونگی این اتفاق می افتد. از آنجا که اتصال به پایگاه داده MySQL یک شیء PDO است، ما باید از روش های مختلف PDO استفاده کنیم (نوعی از توابع که بخشی از یک شی خاص هستند) برای آماده سازی و شروع پرس و جو. روش های اشیاء به این صورت ایجاد می شود:

$ the_object-\u003e the_method ()؛

PDO به شما اجازه می دهد تا قبل از اجرای آن "کد SQL را آماده کنید. پرس و جو SQL قبل از شروع محاسبه و تنظیم شده است. بنابراین، یک حمله ساده توسط تزریق SQL پر کردن کد SQL را می توان در فیلد فرم انجام داد. مثلا:

// کاربر این را در فیلد نام کاربری از یک فرم ورود به منزل می نویسد "؛ قطره پایگاه داده کاربر user_table؛ // پرس و جو نهایی تبدیل به این" SELECT * از user_table که در آن نام کاربری \u003d thom "؛ قطره پایگاه داده user_table؛

از آنجا که کد SQL به طور خلاصه درست است، یک نقطه با کاما باعث می شود رها کردن پایگاه داده user_table پرس و جو جدید SQL، و جدول کاربر شما حذف شده است. آماده سازی عبارات به نمادها اجازه نمی دهد و ; برای تکمیل درخواست منبع و دستورالعمل ها پایگاه داده قطره هرگز اجرا نکنید

همیشه هنگام ارسال یا دریافت اطلاعات از پایگاه داده با PDO از پرسش های آماده شده استفاده کنید.

برای استفاده از عبارات آماده شده، شما باید یک متغیر جدید ایجاد کنید که باعث ایجاد روش می شود آماده کردن () در شیء پایگاه داده.

در فرم صحیح، کد به نظر می رسد:

$ servername \u003d "mysql.hostinger.com"؛ $ پایگاه داده \u003d "U266072517_NAME"؛ $ username \u003d "U266072517_USER"؛ $ password \u003d "buystuffpwd"؛ $ sql \u003d "mysql: host \u003d $ servername؛ dbname \u003d $ پایگاه داده؛"؛ $ dsn_options \u003d؛ // ایجاد یک اتصال جدید به پایگاه داده MySQL با استفاده از PDO، $ my_db_connection یک شیء را امتحان کنید ($ my_db_connection \u003d جدید PDO ($ sql، $ username، $ password، $ dsn_options)؛ echo "با موفقیت" متصل شده است؛) گرفتن (PDOException $ خطا) (ECHO "خطای اتصال:". $ ERROR-\u003e GetMessage ()؛) // متغیرها را برای پایگاه داده $ first_name \u003d "Thom" تنظیم کنید؛ $ last_name \u003d "vial"؛ $ ایمیل \u003d " [ایمیل محافظت شده]"؛/ //- در اینجا یک متغیر ایجاد می کنیم که روش آماده سازی () روش Database Object را ایجاد می کنیم // پرس و جو SQL که می خواهید اجرا شود، به عنوان پارامتر فعال می شود و متغیرهایی ها مانند این نوشته شده اند: justholder_name $ my_insert_statement \u003d $ my_db_connection-\u003e آماده سازی ("وارد کردن به دانش آموزان (نام، نام خانوادگی، ایمیل) مقادیر (: first_name،: last_name، ایمیل)")؛ // در حال حاضر ما به اسکریپت می گویم که متغیر هر حفره یا سوراخ در واقع به استفاده از روش BindParam () اشاره می کند / پارامتر اول حفره یا سوراخ در بیانیه بالا است - پارامتر دوم یک متغیر است که باید به $ my_insert_statement-\u003e bindparam مراجعه کنید (: first_name، $ first_name)؛ $ my_insert_statement-\u003e bindParam (: last_name)؛ $ my_insert_statement؛ $ my_insert_statement -\u003e BindParam (: ایمیل، $ ایمیل)؛ / / اجرای پرس و جو با استفاده از داده هایی که ما فقط تعریف کردیم // روش Execute () RETION درست می شود اگر آن را موفق و نادرست اگر آن را ندارد، اجازه می دهد تا شما را به نوشتن پیام های خود را در اینجا اگر ($ my_insert_statement-\u003e execute ()) (echo "رکورد جدید با موفقیت"؛) el SE (Echo "قادر به ایجاد رکورد نیست؛ ) // در این مرحله شما می توانید داده های متغیرها را تغییر دهید و دوباره اجرا کنید تا داده های بیشتری را به پایگاه داده $ first_name \u003d "John" اضافه کنید. $ last_name \u003d "اسمیت"؛ $ ایمیل \u003d " [ایمیل محافظت شده]"؛ $ my_insert_statement-\u003e execute ()؛ // دوباره اجرا کنید که متغیرها تغییر کرده اند اگر ($ my_insert_statement-\u003e execute ()) (echo" ضبط جدید با موفقیت "؛) دیگر (Echo" قادر به ایجاد رکورد نیست. )

در خطوط 28، 29 و 30، ما از روش استفاده می کنیم bindParam () شیء پایگاه داده یک روش نیز وجود دارد bindvalue ()متفاوت از یک قبلی.

  • bindParam () -این روش داده ها را هنگامی که روش است، شمارش می کند اجرا کردن () به دست آورد. اولین بار اسکریپت به روش می آید اجرا کردن () او این را می بیند $ first_name اشاره به "Thom"، این مقدار را متصل می کند و درخواست را برآورده می کند. هنگامی که اسکریپت دومین بار قبل از روش می شود اجرا کردن ()او شبیه است به $ first_name در حال حاضر به "جان" اشاره می کند، این مقدار را متصل می کند و یک درخواست را دوباره با یک مقدار جدید راه اندازی می کند. مهم است که درک کنیم که یک درخواست یک بار ایجاد می کنیم و سپس داده های مختلف را در بخش های مختلف اسکریپت جایگزین می کنیم.
  • bindvalue () -این روش داده ها را به محض این که صف به آن می رسد، محاسبه می کند. به عنوان ارزش $ first_name در زمانی که ما به این روش رسیدیم، به عنوان "Thom" خواسته شد bindvalue ()این کار هنگام فراخوانی روش استفاده می شود اجرا کردن () برای $ my_insert_statement..

توجه داشته باشید که ما دوباره از متغیر استفاده می کنیم $ first_name و ما از او یک مقدار جدید برای دومین بار می خواهیم. اگر پایگاه داده خود را پس از شروع این اسکریپت بررسی کنید، هر دو از نام مشخص شده، بر خلاف این مقدار متغیر وجود خواهد داشت $ first_nameاین "جان" در پایان این اسکریپت خواهد بود. به یاد داشته باشید که PHP قبل از شروع آن محتویات اسکریپت را تخمین می زند.

اگر جایگزین اسکریپت خود را تغییر دهید bindParam در bindvalueشما دو بار به پایگاه داده MySQL به پایگاه داده MySQL اضافه می کنید و جان اسمیت نادیده گرفته خواهد شد.

مرحله 3 - بررسی موفقیت اجرای و حل مسائل عمومی

اگر پرس و جو که ما در پایگاه داده MySQL راه اندازی کردیم موفق بود، ما چنین پیام ای را خواهیم دید:

حل اشتباهات مشترک

mysqli

در هر مورد دیگر، یک پیام خطا به جای پیام نمایش داده می شود. به عنوان مثال، بگذارید یک خطای نحوی در کد ما بگوئیم و این را دریافت خواهیم کرد:

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

"خطا: به دانش آموزان (نام، نام خانوادگی، ایمیل) مقادیر (" Thom "،" Vial "،" [ایمیل محافظت شده]") شما یک خطا در SEML Syntax خود دارید؛ دستورالعمل را که مربوط به نسخه MySQL سرور شما برای نحو مناسب برای استفاده از مقادیر نزدیک" (نام، نام خانوادگی، ایمیل) ("Thom"، "Vial" است، بررسی کنید. [ایمیل محافظت شده]")" در خط 1 "

یک خطای نحوی مجاز است که در اجرای اسکریپت ما نتواند. خطا اینجا بود:

$ SQL \u003d "به دانش آموزان (نام، نام خانوادگی، ایمیل) مقادیر (" Thom "،" Vial "،" [ایمیل محافظت شده]")";

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

pdo

در خط اتصال PDO 7، حالت مدیریت خطا به "نمایش تمام استثناء" تنظیم می شود (نمایش تمام استثنائات). اگر آن را از اسکریپت حذف کنید و درخواست شکست خواهد خورد، شما هیچ پیام خطا دریافت نخواهید کرد. با استثنائات فعال شده، مشکلات خاصی که ناشی می شود نمایش داده خواهد شد. اساسا بهتر است از زمانی که یک اسکریپت را توسعه می دهید استفاده کنید، زیرا این می تواند نام های پایگاه های داده ها و جداول را شناسایی کند که می خواهید از هر کسی که می توانید دسترسی غیر مجاز به داده های خود را از دست ندهید پنهان کنید. در مورد بالا، زمانی که براکت های فرفری به جای دور استفاده می شود، خطا به نظر می رسد مانند زیر نشان داده شده است:

ERROR FATAL: Exception Uncaght "PDOException" با پیام "SQLState: خطای نحوی یا نقض دسترسی: 1064 شما یک خطا در SQL Syntax خود دارید؛ کتابچه راهنمای کاربر مربوط به نسخه MySQL Server خود را برای نحو مناسب برای استفاده از مقادیر نزدیک "(نام، نام خانوادگی، ایمیل) (" Thom "،" Vial "،" [ایمیل محافظت شده]")" در خط 1 "

مشکلات دیگری که ممکن است با آن روبرو شوید:

  • زمینه های نادرست مشخص شده (زمینه های غیر موجود یا اشتباهات در نوشتن عناوین).
  • مالکیت نوع نوع نوع فیلد. به عنوان مثال، زمانی که ما می خواهیم مقدار شماره را تعیین کنیم 47 رشته نام.ما یک اشتباه را دریافت خواهیم کرد، زیرا فرض بر این است که مقدار یک رشته خواهد بود. اما اگر شما یک عدد را در نقل قول مشخص کنید، به عنوان مثال، “47” ، هیچ خطایی وجود نخواهد داشت، زیرا شماره ما به عنوان یک رشته در این زمینه ثبت می شود.
  • تلاش برای وارد کردن داده ها به یک جدول که وجود ندارد و یا خطا در نوشتن نام جدول وجود ندارد.

تمام این خطاها را می توان پس از دستورالعمل تصحیح خطا اصلاح کرد یا علامت خطا (انگلیسی) را بررسی کرد.

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

نتیجه

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

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

مرحله 1 - ایجاد یک جدول

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

پس از ورود به شما phpmyadmin شما چنین رابط را مشاهده خواهید کرد:

یک جدول را با نام دانشجویی در پایگاه داده U266072517__Name با کلیک بر روی دکمه "Create Table" ایجاد کنید. پس از آن، ما یک صفحه جدید را مشاهده خواهیم کرد که تمام پارامترهای لازم جدول را مشخص می کنید:

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

پارامترهای ستون:

  • نام نام ستون است که در بالای جدول نمایش داده می شود.
  • نوع - نوع ستون به عنوان مثال، ما Varchar را انتخاب کردیم زیرا ما مقادیر رشته را وارد می کنیم.
  • طول / مقادیر - مورد استفاده برای نشان دادن حداکثر طول، که ممکن است در این ستون ثبت شود.
  • فهرست - ما از شاخص "اولیه" برای فیلد "ID" استفاده کردیم. هنگام ایجاد یک جدول، توصیه می شود تنها یک ستون را به عنوان یک کلید اولیه اعمال کنید. این برای فهرست نوشته ها در جدول استفاده می شود و هنگام تنظیم جدول مورد نیاز است. من همچنین "A_I" را ذکر کردم، یعنی "افزایش خودکار" - پارامتر انتساب اتوماتیک ضبط کننده (1،2،3،4 ...).
    روی دکمه ذخیره کلیک کنید و جدول ایجاد خواهد شد.

مرحله 2. نوشتن یک کد پی اچ پی برای وارد کردن داده ها در MySQL.

گزینه 1 - روش mysqli

ابتدا باید یک اتصال به پایگاه داده برقرار کنید. پس از آن، از درخواست SQL وارد کنید. کد نمونه کامل:

"mysqli_error ($ conn)؛) mysqli_close ($ conn)؛؟\u003e

بخش اول کد (3 - 18 ردیف) برای اتصال به پایگاه داده طراحی شده است.

بیایید از خط شماره 19 شروع کنیم:

$ SQL \u003d "به دانش آموزان (نام، نام خانوادگی، ایمیل) مقادیر (" Thom "،" Vial "،" [ایمیل محافظت شده]")";

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

بعد لیست ستون هایی است که در آن مقادیر قرار می گیرند: نام، نام خانوادگی، ایمیل. داده ها در سفارش مشخص شده اضافه می شوند. اگر ما نوشتیم (ایمیل، نام خانوادگی، نام)، مقادیر به ترتیب دیگر اضافه می شود.

بخش بعدی اپراتور ارزش است. در اینجا ما مقادیر ستون ها را مشخص می کنیم: name \u003d thom، lastname \u003d vial، ایمیل \u003d [ایمیل محافظت شده]

ما درخواست را با استفاده از کد پی اچ پی راه اندازی کردیم. در کد پرس و جو SQL باید با نقل قول محافظت شود. قسمت بعدی کد (20-22 ردیف) بررسی می کند که آیا درخواست ما موفقیت آمیز بود یا خیر:

اگر (mysqli_query ($ conn، $ sql)) (echo "جدید RecordCreateDsuccessfully؛)

این کد یک پیام در مورد پرس و جو موفق را نمایش می دهد.

و آخرین قسمت (22 - 24 ردیف) اگر درخواست موفقیت آمیز نبود، اعلان را نمایش می دهد:

eLE (ECHO "ERROR:" $ SQL. "
"mysqli_error ($ conn)؛)

گزینه 2 - روش Object Data PHP (PDO)

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

$ the_object-\u003e the_method ()؛

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

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

برای استفاده از عبارات آماده، شما باید یک متغیر جدید را بنویسید که روش آماده سازی شیء پایگاه داده را فراخوانی کند.

کد درست:

getMessage ()؛ ) // متغیرها را برای فردی که می خواهید برای اضافه کردن $ first_name \u003d "thom" به پایگاه داده اضافه کنید. $ last_name \u003d "vial"؛ $ ایمیل \u003d " [ایمیل محافظت شده]"؛/ // ایجاد یک متغیر که باعث می شود روش پایگاه داده آماده سازی () // پرس و جو SQL که می خواهید انجام شود، به عنوان یک پارامتر وارد می شود و پرکننده ها به صورت زیر نوشته می شوند: justholder_name $ my_insert_statement \u003d $ my_db_connection-\u003e prepare (" insert به دانش آموزان ("نام، نام خانوادگی، ایمیل) مقادیر (: first_name،: last_name،: ایمیل)")؛ // ما اسکریپت را مشخص می کنیم، کدام متغیر به هر مکان نگهدارنده برای استفاده از روش BindParam () اشاره می کنیم پارامتر اول یک پرکننده در اپراتور بالا است، دوم یک متغیر است که باید آن را به $ my_insert_statement-\u003e bindparam (first_name، $ first_name) ارسال کنید؛ $ my_insert_statement-\u003e bindParam (: last_name، $ last_name)؛ $ my_insert_statement-\u003e Bindparam (: ایمیل، $ ایمیل)؛ // انجام پرس و جو با استفاده از داده هایی که فقط تعیین شده است / / اجرا () RETECTIONS TRUE اگر موفقیت آمیز باشد، اگر نه، اگر نه، به شما امکان می دهد تا خود را به نمایش بگذارید پیام ($ my_insert_statement-\u003e execute ()) (echo "reco جدید. rdcreatedsuccly "؛ ) دیگر (Echo "قادر به creatheecord نیست"؛ // در این مرحله، شما می توانید این متغیرها را تغییر دهید و درخواست را برای اضافه کردن داده های دیگر به داده ها به پایگاه داده $ first_name \u003d "John" اجرا کنید. $ last_name \u003d "اسمیت"؛ $ ایمیل \u003d " [ایمیل محافظت شده]"؛ $ my_insert_statement-\u003e اجرا ()؛ // دوباره انجام می شود زمانی که متغیر تغییر می کند اگر ($ my_insert_statement-\u003e execute ()) (echo" recordcreatedsuccyly جدید "؛ دیگر (echo" قادر به creatreecord نیست "؛

در خطوط 28، 29 و 30، ما از روش BindParam () از شیء پایگاه داده استفاده می کنیم. همچنین یک روش BindValue () وجود دارد که بسیار متفاوت از قبل است.

  • bindParam () - این روش داده ها را برآورد می کند زمانی که روش اجرا به دست می آید. برای اولین بار، هنگامی که اسکریپت به روش Execute () می رسد، می بیند که $ first_name مربوط به "Thom" است. سپس این مقدار را متصل می کند و درخواست را شروع می کند. هنگامی که اسکریپت به روش دوم اجرا () می رسد، می بیند که $ first_name اکنون به "جان" مربوط می شود. پس از آن این مقدار را متصل می کند و دوباره یک درخواست با ارزش های جدید شروع می شود. مهم است که به یاد داشته باشید که ما یک بار درخواست را تعریف کردیم و آن را با استفاده از داده های مختلف در نقاط مختلف اسکریپت دوباره استفاده کردیم.
  • bindValue () - این روش داده ها را به زودی به عنوان bindvalue () به دست می آورد. از آنجا که برای $ first_name، ارزش "Thom" به BindValue تنظیم شد ()، هر بار که روش Execute () برای $ my_insert_statement نامیده می شود، استفاده می شود.
    لطفا توجه داشته باشید که ما دوباره از متغیر $ first_name استفاده می کنیم و مقدار جدید را برای دومین بار اختصاص می دهیم. پس از شروع اسکریپت در پایگاه داده، هر دو نام مشخص می شوند، با وجود این واقعیت که متغیر $ first_name در انتهای اسکریپت "جان" است. به یاد داشته باشید که PHP تمام اسکریپت را قبل از اجرای آن بررسی می کند.

اگر اسکریپت را برای جایگزینی BindParam در BindValue به روز کنید، دو بار به پایگاه داده "Thom Vial" وارد می شوید و جان اسمیت نادیده گرفته خواهد شد.

مرحله 3 - تأیید اجرای موفقیت آمیز و حل مشکلات

اگر پرس و جو برای قرار دادن ردیف به پایگاه داده موفق شد، ما پیام زیر را مشاهده خواهیم کرد:

از بین بردن اشتباهات رایج

mysqli

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

قسمت اول کد به ترتیب است، اتصال با موفقیت ثابت شد، اما درخواست SQL تصویب نشد.

"خطا: به دانش آموزان (نام، نام خانوادگی، ایمیل) مقادیر (" Thom "،" Vial "،" [ایمیل محافظت شده]") شما یک خطا در SQL Syntax خود را؛ MustalThatCorresponss به نسخه MySQL Server خود را برای RightyNTax برای استفاده از مقادیر نزدیک" (نام، نام خانوادگی، ایمیل) ("Thom"، "Vial"، بررسی کنید. [ایمیل محافظت شده]")" در خط 1 "

یک خطای نحوی ساخته شده است که باعث شکست اسکریپت شد. خطا اینجا بود:

$ SQL \u003d "به دانش آموزان (نام، نام خانوادگی، ایمیل) مقادیر (" Thom "،" Vial "،" [ایمیل محافظت شده]")";

ما به جای عادی استفاده کردیم. این نادرست است و اسکریپت یک خطای نحوی صادر کرد.

pdo

در خط 7 PDO اتصالات برای حالت خطا تنظیم "نمایش تمام استثناء". اگر مقدار دیگری مشخص شود، درخواست موفق نخواهد شد، ما هیچ پیام خطا دریافت نخواهیم کرد.

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

خطای مرگبار: UncaghtException "PDOException" با پیام "SQLState: خطای نحوی یا accessviolation: 1064 شما یک خطا در نحو SQL خود دارید؛ mustalThatCorrespresponss به نسخه MySQL Server خود را برای jhamicyntax برای استفاده از مقادیر نزدیک "(نام، آخرین نام خانوادگی، ایمیل) (" Thom "،" Vial "،" [ایمیل محافظت شده]")" در خط 1 "

سایر مشکلات احتمالی:

  • ستون ها به اشتباه نشان داده شده اند (ستون های غیر موجود یا خطاهای املایی در نام آنها).
  • یک نوع ارزش یک ستون دیگر را تعیین می کند. به عنوان مثال، اگر سعی کنید شماره 47 را در ستون نام وارد کنید، ما اشتباه خواهیم کرد. در این ستون، شما باید از یک مقدار رشته استفاده کنید. اما اگر ما یک شماره را در نقل قول ها (به عنوان مثال "47") اشاره کردیم، کار می کند، زیرا این یک رشته است.
  • تلاش برای وارد کردن داده ها به یک جدول که وجود ندارد. و همچنین یک خطای املای پذیرفته شده در نام جدول.

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

تمام ماژول های سایت یا برنامه های کاربردی وب که در آن شما نیاز به ایجاد و نوشتن برخی از داده ها (به عنوان مثال، نام، سن، آدرس، و غیره) استفاده از عملکرد ساده در زبان MySQL قرار دادن به `نام، value1، value2) ارزش ('Vasya'، '1'، '2')؛

تمام متغیرها بر اساس مقادیری که ما در اولین براکت ها مشخص شده اند، به پایگاه داده منتقل می شوند. مهم است که رمزگذاری اسکریپت پردازنده، پایگاه داده و فایل پیکربندی را در نظر بگیریم. مطلوب است که از رایج ترین رمزگذاری UTF-8 استفاده کنید.

باید در ذهن داشته باشید که می توانید به دو روش در پایگاه داده ضبط کنید.

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

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

"مقادیر name_base` را وارد کنید (null،` ". $ نام" `،` `،` 2`) "؛ // معنی خالی سوم در نقل قول نوشته شده است

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

راه دوم اگر بعد از پرس و جو به `name_base` (...) لیست تمام سلول ها را پس از نام پایگاه داده وارد کنید. یک مثال در حال حاضر کمی بالاتر در نظر گرفته شده است. اگر فراموش کرده اید، دوباره بنویسید:

"به نام` نام «نام» (`نام`، value`،` value2`) مقادیر (null، `" را وارد کنید. $ نام "`، ``، `2`)"؛

در اینجا ما تمام سلول ها (نام، value1، value2) را ذکر کردیم. و اگر دو سلول اضافی را به جدول پایگاه داده اضافه کنید، نحو پرس و جو نباید تغییر کند. اما اگر ما نیازی به اضافه کردن یک بار در یک درخواست، پیشرفته ترین متغیرهایی که ما برای آن سلول های تازه ایجاد شده نیاز داریم اضافه کنیم.

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

ضبط پی اچ پی به پایگاه داده MySQL. نمونه های عملی

بنابراین، در حال حاضر ما در هنگام کار با پرس و جو های پایگاه داده به ماهیت رسیدیم. ما همه چیز را در نمونه های عملی انجام خواهیم داد. ایجاد یک اسکریپت ساده برای ضبط نظرات که بازدید کنندگان را به سایت ترک خواهد کرد.

برای شروع، یک جدول MSG را در یک پایگاه داده چهار سلول ایجاد کنید. در اولین سلول نوشتن یک شناسه نظر. تعداد کاراکترهای یک سلول تا 10 کاراکتر با پارامتر افزایش خودکار است. این پارامتر اتوماتیک هر بار که نظر +1 اضافه شده است، تغییر خواهد کرد.

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

اما در مورد ما، ما به یاد می گذاریم که بازدیدکنندگان متون بزرگ را نمی نویسند. و بنابراین، ما خودمان را محدود خواهیم کرد و دو هزار کاراکتر را با پارامتر VARCHAR رفع می کنیم تا مقادیر رشته را ضبط کنیم.

در آخرین سلول ما تاریخ نوشتن نظر متن را نوشتیم. ما در یک فرمت عددی در عرض چند ثانیه نوشتیم، با استفاده از زمان تابع تاریخ و زمان فعلی ()؛ برای سادگی، تابع $ time \u003d time () به متغیر را تنظیم می کند؛ و یک سلول را در پایگاه داده ایجاد کنید. ما نام زمان را با پارامتر int (برای مقادیر عددی) می نامیم. من پیشگویی تعداد کاراکترها بهتر از یازده (با یک ذخایر کوچک برای آینده :-).

پایگاه داده بعدی بعدی:

ساختار جدول `msg` msg msg ایجاد جدول (` int (10) null auto_increment، `name` char (250) null،` coment` varchar (2000) نه صفر، `time` int (11) null، اولیه نیست کلید (`id`)) موتور \u003d myisam پیش فرض charset \u003d utf8 auto_increment \u003d 1؛

همه چیز، جدول برای نظرات ایجاد شده است. در حال حاضر ما یک فرم برای نوشتن نظر و خودم اسکریپت را بنویسید. فرم های HTML برای وارد کردن یک نظر بعدی.