PDA

View Full Version : آموزش: ارتباط با mysql و خواندن و نوشتن انواع داده



amin1softco
سه شنبه 01 شهریور 1390, 07:19 صبح
این بخش برای افراد مبتدیه و زیاد حرفه ایی نیست اما می خوام در این بخش آموزش هایی ساده اما کاربردی برای ارتباط با دیتابیس با استفاده از آجاکس (البته نه همیشه) قرار بدم . این آموزش ها مرحله به مرحله بود و برای کسانی مفیده که آشنایی سطحی با php و دستورات دیتا بیس دارند. این آموزش های برگرفته از منابع اینترنتیه که بعد از هر آموزش منبع اصلی هم قرار داده می شه تا دوستان ازش استفاده کنند. خلاصه اگه جایی فن کوزه گریی چیزی هم داشت دوستان دریغ نکنند.:لبخندساده:

این لیست به مرور کامل می شه و ممکنه جابه جایی ها یی درش صورت بگیره


1- نحوه ذخیره و خوانده عکس از دیتا بیس
2-
3-
4-

amin1softco
سه شنبه 01 شهریور 1390, 08:37 صبح
خوب در قدم اول شما برای انجام این آموزش باید یکسری پیش نیاز روی سیستم خودتون داشته باشید
1- apache or IIS
2- php
3- mysql
4- phpmyadmin
وارد جزئیات نمی شم چون از حوصله این تاپیک خارجه فقط برای نصب این پیش نیاز ها می تونید دونه دونه اونها رو دانلود و نصب کنید که اصلاً توصیه نمی کنم
شما می تونید یکی از نرم افزار های Wamp , Xamp , easyphp رو نصب کنید تا این پیش نیاز ها رو به صورت خودکار براتون نصب و پیکر بندی کنه.
که به نظرم Xamp از بقیه کامل تره
__________________________________________________ __

پس از نصب به طور پیش فرض مشخصات اتصال به دیتا بیس mysql به صورت زیر است :


$user="root";
$password="";
$dbhost = "localhost";

اما شما می تونید پسورد دیتا بیس رو تغییر بدید که اگه اینکار رو انجام بدید تنظیمات phpmy admin هم تغییر می کنه و باید آپدیت بشه
اما برای تغییر پسورد کافی کوئری زیر رو اجرا کنید :

UPDATE mysql.user SET Password=PASSWORD('NewPass') WHERE User='root';

__________________________________________________

خوب بریم سر اصل آموزش :

خواندن و نوشتن فایل و تصویر در دیتابیس


خوب ما ابتدا یک جدول ایجاد می کنیم حاوی مشخصات فایل و از طریق یک فرم آدرس فایل رو از کاربر دریافت می کنیم و سپس با مشخصاتش رو با $_FILES استخراج می کنیم و محتویاتش رو با یک دستور fread خونده و همه اینها رو با یک دستور insert ساده درون پایگاه درج می کنیم.

1- برای ایجاد جدول وارد phpmyadmin بشید اگه از قبل دیتابیسی ایجاد کردید که از هون استفاده کنید وگرنه در باکس زیر Create new database بنویسید tutorial و collation را روی utf8_unicode_ci تنظیم و روی دکمه create کلیک کنید.

2- در پنجره ظاهر شده روی تصویر SQL کلیک کرده در صفحه ظاهر شده کد زیر را بنویسید و کلید GO را کلیک کنید:

CREATE TABLE `UploadedFiles` (
`UploadedFileID` int( 11 ) NOT NULL AUTO_INCREMENT ,
`name` varchar( 30 ) default NULL ,
`type` varchar( 30 ) default NULL ,
`size` int( 11 ) default NULL ,
`content` longblob,
PRIMARY KEY ( `UploadedFileID` )
) TYPE = MYISAM ;


این کد یک جدول با نام uploadedfiles ایجاد می کنه که حاوی پنج ستون آی دی , نام, نوع فایل , سایز و محتویات باینری فایل میشه که قرار فایل های ماه اینجا قرار بگیرند.

3- خوب برای اینکه فایل رو در دیتا بیس ذخیره کنید می تونید از این کد رو در یک فایل با نام up.php بریزید و تستش کنید:


<?php
$user="root";
$password="";
$dbhost = "localhost";
$database="tutorial";
if (!mysql_connect($dbhost,$user,$password))
die('خطا در ارتباط با ديتا بيس'.'<br />Could not connect: ' . mysql_error());
elseif (!mysql_select_db($database))
die('خطا در ارتباط با جدول'.'<br />Could not connect: ' . mysql_error());
mysql_query("SET NAMES utf8");
mysql_set_charset("utf8");
?>
<html>
<head>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" lang="fa-IR" id="vbulletin_html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form method="post" enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']?>">
<input type="hidden" name="MAX_FILE_SIZE" value="5000000">
<p>Upload File:<br />
<input name="SpecialFile" type="file"></p>
<input name="upload" type="submit" class="box" id="upload" value="Submit">
</form>
<?php
if (!empty($_POST['upload']))
{
//Insert File
if(isset($_POST['upload']) && $_FILES['SpecialFile']['size'] > 0) {
$fileName = $_FILES['SpecialFile']['name'];
$tmpName = $_FILES['SpecialFile']['tmp_name'];
$fileSize = $_FILES['SpecialFile']['size'];
$fileType = $_FILES['SpecialFile']['type'];
$fp= fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
echo $theData;
$content = addslashes($content);
fclose($fp);
}
if(!get_magic_quotes_gpc()) {
$fileName = addslashes($fileName);
}

$query = "INSERT INTO UploadedFiles (name, size, type, content)".
"VALUES ('{$fileName}', '{$fileSize}', '{$fileType}', '{$content}')";
$result = mysql_query($query);
if (!$result) {
dberror (mysql_error(), $_SERVER['PHP_SELF'] );
echo 'شکست درعملیات آپلود.'.mysql_error();
}else
echo "فایل شما با موفقیت آپلود شد.";
}
mysql_close();
?>
</body>


4- خوب تا اینجا فایل ما روی دیتا بیس ذخیره می شه حالا باید فایل رو دریافت کنیم که کدش این می شه :


<?php
$user="root";
$password="";
$dbhost = "localhost";
$database="tutorial";
if (!mysql_connect($dbhost,$user,$password))
die('خطا در ارتباط با ديتا بيس'.'Could not connect: ' . mysql_error());
elseif (!mysql_select_db($database))
die('خطا در ارتباط با جدول'.'Could not connect: ' . mysql_error());
mysql_query("SET NAMES utf8");
mysql_set_charset("utf8");
if(isset($_POST['send'])){
$UploadedFileID = $_POST['ID'];
$query = "SELECT * FROM UploadedFiles WHERE UploadedFileID = $UploadedFileID";
$result = mysql_query( $query );
if( !$result ) {
echo 'عملیات ناموفق'.mysql_error();
exit;
}

if ($row = mysql_fetch_array( $result ))
{
// Output the MIME header - Force as Octet Stream
// You could get this from the FileType Column
header("Content-type: application/octet-stream");
//header("Content-Type: image/jpeg");
header("Content-Length: " . strlen($row['content']) );
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=".$row['name']);
header("Content-Transfer-Encoding: binary\n");
echo $row['content'];
}}else{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="rtl" lang="fa-IR" id="vbulletin_html">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="<?php $_SERVER['PHP_SELF']?>" method="post"><label>ID: </label><input name="ID" type="text"><input name="send" type="submit" value="download"></form>
<?php
$result = mysql_query("SELECT UploadedFileID, name,type,size FROM UploadedFiles");
echo '<table style="border: #d6d6d2 solid 1px;"><tr><td>ID<td>name<td>type<td>size<td></tr><tr>';
while ($row = mysql_fetch_array($result))
echo '<td>'.$row['UploadedFileID'].'<td>'.$row['name'].'<td>'.$row['type'].'<td>'.$row['size'].'<td></tr><tr>';
echo '</tr></table>';
?>
</body>
</html>
<?php
}
mysql_close();
?>


منبع (http://www.techtoolblog.com/archives/upload-files-to-mysql-using-php-tutorial)