وارد (Insert) کردن اطلاعات به دیتابیس MySQL در پرل
#1
به نام خدا؛
سلام دوستان امیدوارم حالتون خوب باشه...
امروز قصد داریم کد وارد کردن اطلاعات به دیتابیس MySQL رو از طریق زبان پرل با هم بررسی کنیم. همونطور که میدونین پرل (Perl) یکی از زبان های بسیار قدرتمند برای سمت سرور هست که اتفاقاً شباهت نسبی هم به PHP داره و میتونه توی پروژه هاتون حتی بهتر از PHP ظاهر بشه. برای اینکه از پرل در هاست خودتون استفاده کنین باید به دنبال پوشه cgi-bin باشین و توی این پوشه (دایرکتوری) کد پرل خودتون رو با فرمت .cgi ذخیره کنین تا بتونین اجراش کنین. البته از طریق همین دایرکتوری cgi-bin میشه کدهای پایتون (بهتر بگم django) و فلسک و ... رو هم اجرا کرد. حالا برای اینکه بخواین کدهای پرل یا پایتون خودتون رو خارج از این دایرکتوری هم بتونین اجرا کنین باید یک دستور رو در فایل .htaccess درج کنین.
کد:
Options +ExecCGI
AddHandler cgi-script .py
AddHandler cgi-script .cgi
با درج این دستور قادر هستین که هم کدهای پایتون و هم پرل رو در هر دایرکتوری از هاست خودتون اجرا کنین. اما باید دقت داشته باشین که حتماً سیستم عامل وب سرورتون باید آپاچی (Apache) باشه و شرکت هاستینگ هم خودش اذعان کنه که امکان استفاده از پرل و پایتون هم وجود داره. چرا که همه هاست ها دایرکتوری cgi-bin رو ندارن. هاستهای رایگان که بعید میدونم بشه توشون کدهای پرل و پایتون رو اجرا کرد. 
دلیل اینکه من روی پرل تأکید دارم به جای پایتون به این خاطره که شما برای اعمال یک متد GET ساده که بتونین یکسری دیتا رو از طریق URL توی برنامه اعمال کنین باید در پایتون از فلسک استفاده کنین که دشوار نیست ولی ممکنه در نگاه اول یک مقدار گیج کننده باشه. البته به زودی کدهای کاربردی پایتون رو هم منتشر میکنم.
از این مقدمات که بگذریم میرسیم به کد پرل که برای اتصال به دیتابیس MySQL ازش کمک میگیریم. 
کد رو هم کامنت گذاری کردم تا کاملاً متوجه اتفاقاتی که میفته بشین.
من داخل این کد فرض کردم که قصد دارم سه پارامتر شماره تلفن و آیدی و نام رو وارد تیبل (tbl_name)دیتابیس خودم بکنم.
کد:
#!/usr/bin/perl

# استفاده از DBI برای اتصال به دیتابیس مای اس کیو ال در پرل
USE DBI QW(:sql_types);

#تعریف متغیرها

MY ($databaseName, $databaseUser, $databasePw, $dbh);
MY ($stmt, sth, @newRow);
MY ($telephone);

# تعریف مقدار متغیرها
# اطلاعات لازم جهت کانفیگ دیتابیس شامل پسورد و یوزرنیم و نام دیتابیس
# دقت کنین که شما باید نام دیتابیس خودتون رو به جای yourwebsite_come قرار بدین
$databaseName = "DBI:mysql:yourWebSite_com";
$databaseUser = "yourLoginId";
$databasePw = "yourLoginPassword";

# اتصال به دیتابیس

$dbh = DBI->connect($databaseName, $databaseUser,
$databasePw) || DIE "Connect failed: $DBI::errstr\n";

# تعریف کوئری
$stmt = "INSERT INTO tbl_name (Id, Name, Telephone)
VALUES ( $FORM{id},  $FORM{name}, $FORM{telephone})";

# در صورت بروز خطا در کوئری
$sth = $$dbh->prepare($$stmt)
|| DIE "prepare: $$stmt: $DBI::errstr";
$sth->execute || DIE "execute: $$stmt: $DBI::errstr";

# قطع اتصال به دیتابیس
$sth->finish();
$dbh->disconnect();
توضیحات کد:
در کد بالا برای تعیین پارامترهایی که قراره در تیبل دیتابیس ثبت بشن از متد GET استفاده کردم که کاربر میتونه دقیقاً مشابه زبان PHP از طریق URL مقادیر مورد نظر خودش رو ثبت کنه. با ریکوئستی به شکل زیر:
کد:
http://yourhost.com/file.cgi?id=x&name=y&telephone=m
البته دقت داشته باشین استفاده از متد GET برای ترنسفر دیتاهای حیاتی به هیچ وجه توصیه نمیشه و باید از متد POST استفاده کرد. اینجا چون جنبه آموزش هست من از متد GET استفاده کردم.
شما در کد بالا باید به جای tbl_name نام تیبل خودتون رو وارد کنین. به نکته ای که راجع به نام دیتابیس در کامنت کدها هم ذکر شده دقت داشته باشین.
ممکنه در خط اول کد عبارت "#!/usr/bin/perl" رو مشاهده کنین و براتون سوال باشه که این عبارت دقیقاً برای چی درج شده. در واقع این عبارت در اولین خط کدهای پرل درج میشه برای شناساندن محل مفسر پرل به آپاچی که کد توسط آپاچی اجرا بشه.
امیدوارم این مطلب براتون مفید واقع شده باشه. خوشحال میشم نظراتتون رو گوشزد کنین.
سعی میکنم آموزش های بیشتری از پرل و پایتون منتشر کنم تا بتونین در کنار PHP و یا به تنهایی از این دو زبان استفاده کنین. اگر چه هنوز گزینه هایی مثل ASP.NET و Node.js هم که مشهور هستن باقی میمونه که چون یک مقدار پیش زمینه سی شارپ و جاوا اسکریپت نیاز هست ازشون صرف نظر میکنیم.
در مطالب دیگه سعی میکنم که راجع به دیتابیس های No SQL هم مطالبی قرار بدم تا بتونین با درخت های تصمیم کار کنین و کم کم به بحث MVC علاقه مند بشین. دیتابیس های No SQL مزیت های بیشتری نسبت به دیتابیس های SQL (مثل MySQL) دارن. مثلاً دیتابیس های SQL تنها روی یک سرور اجرا میشن و قابلیت توزیع شدن ندارن و اگر سرور داون بشه دیتابیس هم دچار مشکل میشه در حالی که در دیتابیس های No SQL اینطور نیست. سعی میکنم بیشتر شما رو با mongo DB که یک دیتابیس No SQL هست و کار با اون خیلی مشابه MySQL هست آشنا کنم. البته برای استفاده از هر دیتابیسی غیر از MySQL در زبان PHP که به صورت پیشفرض برای این زبان تعریف شده باید از کتابخانه ها یا یکسری کلاسهایی که نوشته شده استفاده کنین. 
در مطالب آینده کد دریافت اطلاعات از دیتابیس MySQL توسط پرل رو هم قرار میدم.
با آرزوی بهترین ها...
 
غایب
  پاسخ


 سپاس شده توسط: mostafanastary ، M.gh ، ghasem ، amin hosseini
#2
(1399/1/9، 01:34 عصر)Master Badfar نوشته است: همونطور که میدونین پرل (Perl) یکی از زبان های بسیار قدرتمند برای سمت سرور هست که اتفاقاً شباهت نسبی هم به PHP داره و میتونه توی پروژه هاتون حتی بهتر از PHP ظاهر بشه.


برای سمت سرور ب هیچ صورت هیچ زبانی از هر جنبه ای نمیتونه ب نظیر php ظاهر بشه و کارکرد داشته باشه
لطفا همینجوری یه چیزی رو هوا نگید
غایب
  پاسخ


 سپاس شده توسط:
#3
عالیه
از اینجور آموزش ها بیشتر بزارین.
  پاسخ


 سپاس شده توسط: Master Badfar
#4
(1399/1/9، 01:34 عصر)Master Badfar نوشته است: <br />
همونطور که میدونین پرل (Perl) یکی از زبان های بسیار قدرتمند برای سمت سرور هست که اتفاقاً شباهت نسبی هم به PHP داره و میتونه توی پروژه هاتون حتی بهتر از PHP ظاهر بشه.</quote><br />
<br />
<br />
برای سمت سرور ب هیچ صورت هیچ زبانی از هر جنبه ای نمیتونه ب نظیر php ظاهر بشه و کارکرد داشته باشه<br />
لطفا همینجوری یه چیزی رو هوا نگید<br />


انعطاف PHP نسبت به پرل بیشتره. در ضمن پرل شباهت زیادی به PHP داره. در ضمن من گفتم میشه در کنار php از پرل هم استفاده کرد.
پرل توی فیلد محاسبه و اجرای الگوریتم هایی مثل spectral-norm در ماتریس ها و reverse-complement طبق آزمایشی که من دیدم  سریعتر عمل میکنه. به هر حال نه من و نه شما مبدع پرل یا PHP نیستیم!
شما فرض کن میخوای یک سرویس استریم ویدیو راه بندازی با PHP. مسلماً خیلی دشوار هست ولی این کار با کمک JS و پایتون به مراتب بسیار راحت تر هست.
به هر حال هر چیزی را بهر کاری ساختند.
هدف من هم از این تاپیک فقط آشنا کردن بعضی از اعضای انجمن با زبانهای مختلف سمت سرور بود که بتونن از PHP یا هر زبان دیگه ای که رایج هست کمک بگیرن.
در ضمن باید قبول کرد که execution time زبان PHP برای پروژه های بزرگتر بهینه نیست. توی پروژه های بزرگ از فریمورک Cake PHP استفاده میشه که باعث میشه PHP به شدت منعطف تر بشه.
به هر حال قصد من صرفاً یک معارفه ساده بود که شاید به بهانه این تاپیک بعضی از کاربرها آشنایی بیشتری با زبانهای مختلف پیدا کنن.
غایب
  پاسخ


 سپاس شده توسط: M.gh ، ghasem


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش پروژه محور ساخت بازی مار و پله mohsen_nasri 6 3,807 1403/10/24، 09:38 عصر
آخرین ارسال: Tggi
Star مهم آموزش خروجی اندروید روی سیستم شخصی rezamms 128 86,462 1403/10/23، 04:58 عصر
آخرین ارسال: Tggi
  مهم آموزش تصویری خروجی مستقیم - یکبار برای همیشه! rezamms 33 20,911 1401/2/13، 09:39 عصر
آخرین ارسال: kamran_cn
  خروجی اندرید davinmstr1 2 2,601 1400/8/4، 10:23 عصر
آخرین ارسال: ᔕinaᗪehghani
  AAB (بسته برنامه اندروید) چيست؟ + نحوه خروجي گرفتن در كرودوا ᔕinaᗪehghani 15 8,600 1400/6/21، 01:55 صبح
آخرین ارسال: mehdi1100

پرش به انجمن: