PDA

View Full Version : مبتدی: یه نمونه ذخیره اطلاعات در mysql



sina_saravi1
دوشنبه 25 مرداد 1389, 00:49 صبح
سلام دوستان

من خیلی از PHP سرم نمیشه
ولی الان یه جا نیازم شد که با PHP بتونم وصل بانک Mysql بشم و توی یه تیبل داده ذخیره کنم

از دوستان میخواستم تا یه نمونه کد PHP برام بزارن که :

یه سری اطلاعات برای صفحه با متد Get یا Post ارسال میشه و توی یه بانک ذخیره بشه

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


بازم ممنونم
اگه به مشکل برخوردم بازم مزاحم میشم:خجالت:

sina_saravi1
دوشنبه 25 مرداد 1389, 00:51 صبح
و در آخر هم اگه کار درست انجام شد به یه صفحه ریدایرکت بشه و اگه برعکس به یه صفحه دیگه

parselearn
دوشنبه 25 مرداد 1389, 03:58 صبح
http://barnamenevis.org/forum/showthread.php?t=235673&highlight=mysql_connect
http://barnamenevis.org/forum/showthread.php?t=217978&highlight=insert
http://barnamenevis.org/forum/showthread.php?t=233139&highlight=mysql_connect

اتصال

$link=mysql_connect('localhost','root','pass');
mysql_select_db('dbname');
براي ثبت از insert استفاده ميكنيم

$sqlstr="INSERT INTO tbl_name VALUES ('$_POST[lname]', '$_POST[fname]')";
mysql_query($sqlstr,$link);رديركت
http://barnamenevis.org/forum/showthread.php?t=238072&highlight=header

sqli
http://barnamenevis.org/forum/showthread.php?t=174827

sina_saravi1
دوشنبه 25 مرداد 1389, 13:45 عصر
چون اطلاعاتم فارسیه با این روش هیچ مشکلی پیش نمیاد؟

باید چه تنظیماتی روی بانکم انجام بدم؟

sina_saravi1
دوشنبه 25 مرداد 1389, 13:58 عصر
ببخشید یه سوال دیگه

باید از کجا متوجه بشم که داده ها ثبت شده یا نه؟

bestirani2
دوشنبه 25 مرداد 1389, 14:12 عصر
چون اطلاعاتم فارسیه با این روش هیچ مشکلی پیش نمیاد؟

باید چه تنظیماتی روی بانکم انجام بدم؟


هنگام ایجاد بانک اطلاعاتی یونیکد را روی utf-8 و collation را روی utf persian ci قرار بده

bestirani2
دوشنبه 25 مرداد 1389, 14:13 عصر
ببخشید یه سوال دیگه

باید از کجا متوجه بشم که داده ها ثبت شده یا نه؟

با استفاده از تابع زیر میتوانی تعداد سطر هایی که تحت تأثیر قرار گرفته را بفهمی یعنی وقتی 2 تا سطر وارد میکنی باید عدد رو نشون بدهد


int mysql_affected_rows ([ resource $link_identifier ] )


یا میتونی select کنی که ببینی وجود داره و یا ن

maysam.m
دوشنبه 25 مرداد 1389, 14:27 عصر
برای اینکه مشکلی در ارسال داده ها به صورت فارسی پیش نیاد این کدها را هم به query خودتون اضافه کنید:

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");

sina_saravi1
دوشنبه 25 مرداد 1389, 14:35 عصر
میشه یه کد بزارید که تمام موارد بالا توش اومده باشه؟

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

sina_saravi1
دوشنبه 25 مرداد 1389, 14:44 عصر
برای اینکه مشکلی در ارسال داده ها به صورت فارسی پیش نیاد این کدها را هم به query خودتون اضافه کنید:

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");


ممنونم

این دو خط رو باید قبل از ذخیره داده بزارم یا بعد از اون؟
یعنی کجاش بزارم جواب میده؟

bestirani2
دوشنبه 25 مرداد 1389, 15:01 عصر
میشه یه کد بزارید که تمام موارد بالا توش اومده باشه؟

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

واسه نمونه کد به
http://php.net/manual/en/function.mysql-affected-rows.php
برید
در مورد محدودیت هم اگه نوع text استفاده کنید که اگه فکر میکنید باز هم کم میارید از longtext استفاده کنید

sina_saravi1
دوشنبه 25 مرداد 1389, 15:07 عصر
نه من یه نمونه کد میخواستم که :

وصل به بانک بشه
داده فارسی ذخیره کنه (داده ها با متد Post به فایل PHP ارسال میشن و نام و نام خانوادگی هستن)
اگر عملیات به درستی انجام شد به صفحه A.html ری دایرکت بشه و اگه به درستی انجام نشد به صفحه B.html ری دایرکت بشه

تمام تنظیماتی که تو پست های اخبر اومده توش استفاده بشه ( جریان UTF8 و... )

بازم از همتون به خاطر راهنمایی هاتون تشکر میکنم

bestirani2
دوشنبه 25 مرداد 1389, 15:13 عصر
نه من یه نمونه کد میخواستم که :

وصل به بانک بشه
داده فارسی ذخیره کنه (داده ها با متد Post به فایل PHP ارسال میشن و نام و نام خانوادگی هستن)
اگر عملیات به درستی انجام شد به صفحه A.html ری دایرکت بشه و اگه به درستی انجام نشد به صفحه B.html ری دایرکت بشه

تمام تنظیماتی که تو پست های اخبر اومده توش استفاده بشه ( جریان UTF8 و... )

بازم از همتون به خاطر راهنمایی هاتون تشکر میکنم

صفحه زیر رو نگاه کنی
نمونه کد کلی + آموزش مختصر داده شده که کارت راه میندازه

http://www.w3schools.com/php/php_mysql_connect.asp

sina_saravi1
دوشنبه 25 مرداد 1389, 15:54 عصر
این که فقط نحوه ی اتصال رو گفته

کاشکی PHP رو خوب بلد بودم
سر هم 15 تا خط کد میخواد بشه

sina_saravi1
دوشنبه 25 مرداد 1389, 16:24 عصر
شما که کد نمیزارید

حالا ببینید این کد درسته؟



<?php
ob_start();


$link=mysql_connect('sever','user','pass');
mysql_select_db('mydb');
$sqlstr="INSERT INTO tbl_name VALUES ('$_POST[lname]', '$_POST[fname]')";
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query($sqlstr,$link);



if()
{
header('Location:index.php?page=from1');
}
else if ()
{
header('Location:index.php?page=form2');
}


ob_end_flush();
?>

bestirani2
دوشنبه 25 مرداد 1389, 16:50 عصر
این که فقط نحوه ی اتصال رو گفته

کاشکی PHP رو خوب بلد بودم
سر هم 15 تا خط کد میخواد بشه

بقیش هم گفته
لینک های زیر رو نگاه کنید
مطالب زیر گفته شده

MySQL Connect (http://www.w3schools.com/php/php_mysql_connect.asp)
MySQL Create (http://www.w3schools.com/php/php_mysql_create.asp)
MySQL Insert (http://www.w3schools.com/php/php_mysql_insert.asp)
MySQL Select (http://www.w3schools.com/php/php_mysql_select.asp)
MySQL Where (http://www.w3schools.com/php/php_mysql_where.asp)
MySQL Order By (http://www.w3schools.com/php/php_mysql_order_by.asp)
MySQL Update (http://www.w3schools.com/php/php_mysql_update.asp)
MySQL Delete (http://www.w3schools.com/php/php_mysql_delete.asp)
PHP ODBC (http://www.w3schools.com/php/php_db_odbc.asp)

bestirani2
دوشنبه 25 مرداد 1389, 16:52 عصر
شما که کد نمیزارید

حالا ببینید این کد درسته؟



<?php
ob_start();


$link=mysql_connect('sever','user','pass');
mysql_select_db('mydb');
$sqlstr="INSERT INTO tbl_name VALUES ('$_POST[lname]', '$_POST[fname]')";
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query($sqlstr,$link);



if()
{
header('Location:index.php?page=from1');
}
else if ()
{
header('Location:index.php?page=form2');
}


ob_end_flush();
?>


1. توی قسمت شرطی این رو بررسی کن

mysql_affected_rows($link) > 0 2. مشکل Sql injection داره

maysam.m
دوشنبه 25 مرداد 1389, 21:06 عصر
ممنونم

این دو خط رو باید قبل از ذخیره داده بزارم یا بعد از اون؟
یعنی کجاش بزارم جواب میده؟

این دو خط را قبل از تمامی کوئری هایی که میخواهید قرار دهید.