পিএইচপি : একটি মাইএসকিউএল ডাটাবেজ তৈরি করা (PHP Create a MySQL Database)

Sheikh Mahfuzur Rahman

 

একটি ডাটাবেজ এক বা তারও বেশি টেবল নিয়ে গঠিত। কোন MySQL ডাটাবেজ তৈরি বা মুঁছে দিতে চাইলে আপনার বিশেষ ধরণের আইনগত অধিকার লাগবে যা CREATE নামে পরিচিত।

MySQLi এবং PDO ব্যবহার করে একটি মাইএসকিউএল ডাটাবেজ তৈরি করা

CREATE DATABASE স্টেটমেন্ট মাইএসকিউএল-এ একটি ডাটাবেজ তৈরি করতে ব্যবহৃত হয়। নিচের উদাহরণটি “myDB” নামের একটি ডাটাবেজ তৈরি করেঃ

ঊদাহরণ (MySQLi অবজেক্ট-অরিয়েন্টেড)


<?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 
 // Create connection
 $conn = new mysqli($servername, $username, $password);
 // Check connection
 if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
 } 
 
 // Create database
 $sql = "CREATE DATABASE myDB";
 if ($conn->query($sql) === TRUE) {
     echo "Database created successfully";
 } else {
     echo "Error creating database: " . $conn->error;
 }
 
 $conn->close();
 ?>

লক্ষ্যণীয়ঃ যখন আপনি নতুন ডাটাবেজ তৈরি করেন, আপনাকে অবশ্যই MySQLi এর কাছে শুধুমাত্র প্রথম তিনটি আর্গুমেন্ট নির্দিষ্ট করে দিতে হবে (servername, username and password)।

 

টিপঃ আপনাকে যদি নির্দিষ্ট কোন পোর্ট ব্যবহার করতে হয় তাহলে ডাটাবেজ-নেম আর্গুমেন্টের জন্য একটি খালি স্ট্রিং যোগ করুন, ঠিক এই mysqli(“localhost”, “username”, “password”, “”, port) এর মতো।

উদাহরণ (MySQLi Procedural)


<?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 
 // Create connection
 $conn = mysqli_connect($servername, $username, $password);
 // Check connection
 if (!$conn) {
     die("Connection failed: " . mysqli_connect_error());
 }
 
 // Create database
 $sql = "CREATE DATABASE myDB";
 if (mysqli_query($conn, $sql)) {
     echo "Database created successfully";
 } else {
     echo "Error creating database: " . mysqli_error($conn);
 }
 
 mysqli_close($conn);
 ?>

 

লক্ষ্য করুনঃ নিচের PDO উদাহরণটি “myDBPDO” নামের একটি ডাটাবেজ তৈরি করেঃ

উদাহরণ (PDO)


<?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 
 try {
     $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
     // set the PDO error mode to exception
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     $sql = "CREATE DATABASE myDBPDO";
     // use exec() because no results are returned
     $conn->exec($sql);
     echo "Database created successfully<br>";
     }
 catch(PDOException $e)
     {
     echo $sql . "<br>" . $e->getMessage();
     }
 
 $conn = null;
 ?>

 

টিপসঃ PDO এর একটি ব্যাপক সুবিধা হলো যেকোন সমস্যা মোকাবেলা করার জন্য, যা আমাদের ডাটাবেজ কোয়ারিগুলোতে ঘটতে পারে,  তার এটির এক্সেপশন ক্লাস রয়েছে। যদি try{ } ব্লকের ভিতর একটি এক্সেপশন ক্লাস ছুড়ে দেয়া হয় তাহলে স্ক্রিপ্টটি একজিকিউট করা বন্ধ করে দেয় এবং প্রথম catch(){ } ব্লকের ভিতর প্রবাহিত হয়। উপরের ক্যাচ ব্লকের ভিতর আমরা এসকিউএল স্টেটমেন্টটি এবং তৈরিকৃত এরর মেসেজের পাই।

 

Random Short Notes on Project Management (PMI)

ব্যবস্থাপনার উপর কিছু সংক্ষিপ্ত নোটঃ
রিদওয়ান বিন শামীম

প্রকল্পের সুযোগ ব্যবস্থাপনার পরিকল্পনাঃ সুযোগ ব্যবস্থাপনার পরিকল্পনা হল মূলত নির্দিষ্ট করে কীভাবে প্রকল্পের সম্ভাব্য সুযোগের বিভিন্ন উত্থান পতনগুলো নিয়ন্ত্রণ করা যায় ও কীভাবে সুযোগের ক্ষেত্র গুলো নির্ধারণ করা যায়।এজন্যপ্রথমেই যা করতে হবে তা হল প্রকল্প শুরু করা। একটি প্রকল্প শুরু করাঃ একটি প্রকল্প শুরু করার সাথে মূলত দুই ধরণের উপাত্ত জড়িত থাকে, প্রথমটি হল প্রকল্পের কিছু নির্দিষ্ট বৈশিষ্ট্য গড়ে তোলা এবং দ্বিতীয়টি হল সম্ভাব্য প্রাথমিক সুযোগগুলোর একটি খসড়া গঠন করা।প্রকল্প ব্যবস্থাপকদের এক্ষেত্রে সরাসরি ও সততার সাথে আচরণ করতে হয়। যেকোনো পরিস্থিতিতে কোন সমস্যা এলে তাকে সোজাসুজি সেই সমস্যা মোকাবেলা করতে হয়। প্রকল্পের বৈশিষ্ট্য, যা অফিসিয়ালি একটি প্রকল্পের ভিত্তি, সেগুলো ব্যবসায়িক চাহিদা মেনে গঠন করতে হয়, সবসময় মাথায় রাখতে হয়, কেন প্রকল্পটি করা হচ্ছে অর্থাৎ প্রকল্পটির উদ্দেশ্য কি। সুযোগের খসড়া হয়ে যাওয়ার পর ও টিমের কর্মীদের কাজ শুরু হয়ে যাওয়ার পর সাধারণত প্রকল্পের যে ধারাটি শুরু করতে হয় তা হল ডবলুবিএস প্রসেস (WBS process) যা মূলত কাজের খণ্ডিত অংশগুলোর আউটপুট বা ফলাফল নির্ধারণ করে। এই আউটপুট গুলো কয়েকটি বিষয়ের সমন্বয়ে হয়ে থাকেঃ মূল্যবান সাংগঠনিক প্রক্রিয়া, প্রকল্পবিধি ও প্রাথমিক সুযোগগুলোর খসড়া ইত্যাদি। প্রকল্পের কর্ম প্রণালীর নিষ্ঠার ক্ষেত্রে প্রকল্প ব্যবস্থাপককে সব সময় খেয়াল রাখতে হয় সমস্যা সমাধান ও সিদ্ধান্ত গ্রহনের দিকে। সমস্যা সমাধান ও সিদ্ধান্ত গ্রহনের এই বিষয়গুলো ব্যবস্থাপককে একা দেখতে হয়, এগুলো টিম ওয়ার্ক নয়। এবিষয়ে কাজের ধারার বিবরণী পাওয়া যাবে ডবলুবিএস ডিকশনারিতে(in WBS dictionary)। সুযোগের গুরুত্ব নিশ্চিতকরণ হল এমন একটি প্রক্রিয়া যেখানে ক্রেতা ও অর্থ বিনিয়োগকারী যাচাই করতে চায় চূড়ান্তভাবে প্রাপ্ত পণ্য পূর্বের ধারণা করা পণ্যের মানের মতন হয়েছে কিনা।স্টেটমেন্ট অফ ওয়ার্ক বা কাজের বিবৃতিঃ স্টেটমেন্ট অফ ওয়ার্ক বা কাজের বিবৃতি প্রকল্পের খণ্ডিত অংশের বিবরণ দেয় যাতে অনেক সময় বাইরের বিক্রেতাদের অনেক বিষয়ও জড়িত থাকে।কোড অফ কন্ডাক্টের শর্তে প্রকল্প ব্যবস্থাপনার সাথে সংশ্লিষ্ট ব্যক্তিদের আরও বলা থাকে প্রকল্পের লাভ বা লভ্যাংশ নিয়ে যেকোনো ধরণের কোন্দল এড়িয়ে চলতে। ডবলুবিএস সার্ভের উদ্দেশ্যঃ ডবলুবিএস সার্ভে পুরো বিষয়টি চূড়ান্ত ভাবে খতিয়ে দেখে, এই ডবলুবিএস সার্ভের কয়েকটি উদ্দেশ্য আছে। সেগুলো হলঃ পূর্বে নিরুপিত সম্ভাব্যতা কতটুকু নির্ভুল তা জানা, নিয়ম নিষ্ঠা ও দায়িত্ববোধ মেনে চলাকে সহজ করা, প্রকল্পের সফলতার একটি মানদণ্ড তৈরি করা ইত্যাদি। এভাবেই প্রকল্প ব্যবস্থাপনার কাজ এগিয়ে চলে।
তথ্যসুত্রঃ (Andy Crowe, the PMP Exam.)

এএসপি.নেট এমভিসি – মডেল . ASP.NET MVC – Models

এএসপি.নেট এমভিসি – মডেল
Sheikh Mahfuzur Rahman
Bangla Word: 300

এএসপি.নেট এমভিসি (ASP.NET MVC) শেখার জন্য আমরা একটি ইন্টারনেট অ্যাপ্লিকেশান তৈরি করছি। আজকে এর সপ্তম পার্ট নিয়ে আলোচনা করা হবে; পূর্বের ছয়টি পার্ট সম্পর্কে না পড়ে থাকলে পড়ে নিন।

সপ্তম পার্টঃ ডাটা মডেল যোগ করা

এমভিসি মডেল/MVC Model
এমভিসি মডেল শুধু পিউর ভিউ এবং কন্ট্রোলার লজিক ছাড়া সবগুলো অ্যাপ্লিকেশন লজিক ধারণ করে, যেমন বিজনেস লজিক, ভ্যালিডেশান লজিক এবং ডাটা অ্যাক্সেস লজিক। এমভিসি’র মাধ্যমে মডেলগুলো অ্যাপ্লিকেশন ডাটাকে একই সাথে ধারণ ও পরিবর্তন (manipulate) করে।

মডেল ফোল্ডার/Model Folder

মডেলগুলোর ফোল্ডার ক্লাসগুলোকে ধারণ করে যা অ্যাপ্লিকেশন মডেলকে প্রতিনিধিত্ব করে। ভিজ্যুয়াল ওয়েব ডেভলাপার সয়ংক্রিয়ভাবে একটি AccountModels.cs ফাইল তৈরি করে যা অ্যাপ্লিকেশন সিকিউরিটির জন্য মডেলগুলো ধারণ করে। AccountModels একটি LogOnModel, একটি ChangePasswordModel, এবং একটি RegisterModel ধারণ করে।

ডাটাবেজ মডেল যোগ করা/Add Database Model

এই টিউটোরিয়ালের জন্য যে ডাটাবেজ মডেলটি দরকার তা নিচের সহজ ধাপগুলো অনুসরন করে তৈরি করা যায়ঃ

Solution Explorer এ Models ফোল্ডারে রাইট-ক্লিক করুন এবং Add এবং Class সিলেক্ট করুন
ক্লাসটির নাম দিন MovieDB.cs এবং Add এ ক্লিক করুন
ক্লাসটিকে এডিট করুনঃ

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace MvcDemo.Models
{
public class MovieDB
{
public int ID { get; set; }
public string Title { get; set; }
public string Director { get; set; }
public DateTime Date { get; set; }

}
public class MovieDBContext : DbContext
{
public DbSet<MovieDB> Movies { get; set; }
}
}

লক্ষ্যণীয়ঃ আমরা ইচ্ছাকৃতভাবে মডেল ক্লাসের নাম দিয়েছি “MovieDB” । পূর্বের অধ্যায়ে “MovieDBs” নামটিকে ( শেষে s আছে) আপনি ডাটাবেজ টেবলের জন্য ব্যবহৃত হতে দেখেছেন। এটা দেখতে অদ্ভুত দেখায়, কিন্তু এটি নামকরণের একটি রীতি যা ডাটাবেজ টেবলের সাথে মডেলটিকে কানেক্ট করতে ব্যবহার করা হয়।

একটি ডাটাবেজ কন্ট্রোলার যোগ করা

নিচের সহজ ধাপগুলো অনুসরন করে এই টিউটোরিয়ালের জন্য প্রয়োজনীয় ডাটাবেজ কন্ট্রোলারটি তৈরি করা যায়ঃ

আপনাকে প্রজেক্টকে আবার তৈরি করুনঃ Debug সিলেক্ট করুন, এবং তারপর মেন্যু থেকে Build MvcDemo সিলেক্ট করুন।
সল্যুশান এক্সপ্লোরারে, Controllers ফোল্ডারে রাইট-ক্লিক করুন, Add এবং Controller সিলেক্ট করুন
কন্ট্রোলারের নামকে MoviesController হিসেবে সেট করুন
টেমপ্লেট সিলেক্ট করুনঃ Controller with read/write actions and views, using Entity Framework
মডেল ক্লাস সিলেক্ট করুনঃ MovieDB (MvcDemo.Models)
ডাটা কন্টেক্সট ক্লাস সিলেক্ট করুনঃ MovieDBContext (MvcDemo.Models)
ভিউ সিলেক্ট করুনঃ Razor (CSHTML)
Add এ ক্লিক করুন

ভিজ্যুয়াল ওয়েব ডেভলাপাররা নিচের ফাইলগুলো তৈরি করবেঃ

Controllers ফোল্ডারে একটি MoviesController.cs ফাইল
Movies ফোল্ডারে একটি Views ফোল্ডার

ডাটাবেজ ভিউ যোগ করা
নিচের ফাইলগুলো সয়ংক্রিয়ভাবেই মুভিজ ফোল্ডারে তৈরি হয়ে যায়ঃ

Create.cshtml
Delete.cshtml
Details.cshtml
Edit.cshtml
Index.cshtml

একটি কানেকশান স্ট্রিং যোগ করা
আপনার Web.config ফাইলের <connectionStrings> এলিমেন্টে নিচের এলিমেন্টটি যোগ করুনঃ

<add name=”MovieDBContext”
connectionString=”Data Source=|DataDirectory|\Movies.sdf”
providerName=”System.Data.SqlServerCe.4.0″/>

অভিনন্দন!

আপনাকে অভিনন্দন! আপনি আপনার অ্যাপ্লিকেশানে প্রথম এমভিসি ডাটা মডেল যোগ করেছেন।
এখন আপনি “Movies” ট্যাবে ক্লিক করতে পারবেন 🙂

উইন্ডোজ ৮.১ টিউটোরিয়াল: অনলাইনে প্রবেশ (Getting online)

উইন্ডোজ ৮.১ টিউটোরিয়াল 11 এর 1

E-mail চেক করা, পছন্দনিয় সাইটগুলো পরিদর্শন করা, বন্ধুদের ‍Status update এ মন্তব্য করা – ইন্টারনেট কানেকশনের উপর ভিত্তি করে অনেক কিছুই আপনি করতে পারেন। পথ খুঁজে বের করুণ আপনি কিভাবে অনলাইনে প্রবেশ করবেন এবং যখন আপনি পাবলিক নেটওয়পাক এ থাকবেন তখন কিভাবে আপনার তথ্য নিরাপদ রাখবেন।

শিখুন কিভাবে Online এ প্রবেশ করবেন:

ইন্টারনেটের সাথে সংযুক্ত থাকা
আপনি Social update পোষ্ট করতে চান, বন্ধুকে E-mail পাঠাতে চান অথবা আপনার প্রিয় ওয়েবসাইটগুলো পরিদর্শন করতে চান, ইন্টারনেট সংযোগ হচ্ছে তার চাবি। এবং আপনার যদি উইন্ডোজ 8.1 অথবা উইন্ডোজ আরটি 8.1 পিসি থাকে তাহলে এই কাজগুলো করতে হলে আপনার ইন্টারনেট সংযোগ প্রয়োজন হবে।

বাড়িতে সংযুক্ত করণ:
আপনার যদি ISP (ইন্টারনেট সার্ভিস প্রোভাইডার) যেমন- phone বা cable কম্পানী এর মত একটি  একাউন্ট (আইডি) থাকে তাহলে ইতিমধ্যেই আপনার বাড়িতে ইন্টারনেট সংযোগ আছে। আপনি আপনার পিসিকে একটি ইথারনেট তারের (Ethernet cable) মাধ্যমে মডেম এর সাথে সংযুক্ত করতে পারেন এবং ইন্টারনেট ব্রাউজার ওপেন করে ইন্টারনেট ব্যবহার করতে পারেন। যদি আপনার আরো সহায়তার প্রয়োজন হয় তাহলে আপনি “ইন্টারনেটে সংযোগ” দেখতে পারেন।
যদি বিভিন্ন পিসি বা ডিভাইস এ একই সংযোগ শেয়ার করতে চান অথবা যদি আপনি একটি পাসওয়ার্ড সুরক্ষিত সংযোগ চান, তাহলে আপনি আপনার বাড়িতে একটি নেটওয়ার্ক সেট আপ করতে পারেন। একবার সেটআপ করার পরে, আপনি Charm থেকে আপনার নেটওয়ার্ক নির্বাচন করতে পারবেন, আরো জানতে “একটি ডিভাইস বা পিসি যোগ করুন” দেখুন।
আপনি যখন বাড়িতে সংযোগ নিবেন তখন HomeGroup তৈরি করুন, যা পিসি থেকে গান অথবা ভিডিও শুনতে অথবা ফাইল বা ডিভাইস (যেমন প্রিন্টার হিসেব) দুটি পিসির মধ্যে শেয়ার করার জন্য নিখুঁত। আরো জানতে দেখুন “HomeGroup শুরু থেকে শেষ”।

আপনি যখন বাহিরে থাকবেন তখনও সংযুক্ত থাকা
প্রচুর সংখ্যক Public Places ওয়াই-ফাই সংযোগ সেবা প্রদান করে, যেমন কফি শপ বা বিমানবন্দর। যখন আপনি কফি বা ফ্লাইট এর জন্য অপেক্ষা করছেন, আপনি আপনার ই-মেইল চেক করতে পারেন বা ওয়েব সাইট ব্রাউজ করতে পারেন।
আপনি যদি এমন জায়গায় থাকেন যেখানে Wi‑Fi নেই, আপনি মোবাইলে ব্রডব্যান্ড সংযোগ চালু করতে পারেন। মোবাইল ব্রডব্যান্ড সংযোগ একটি ইন্টারনেট সংযোগ যা আপনি নিজের সাথে নিয়ে যেতে পারেন এবং যতদুর মোবাইল ফোন সেবা চালু আছে তার সবখানেই ইন্টারনেট ব্যবহার করতে পারবেন। আপনার একটি সিম কার্ড ক্রয় করতে হবে Phone বা Cable কম্পানীর কাছ থেকে এবং তারপর পিসির সাথে কার্ডটি সংযোগ করে মোবাইল ব্রডব্যন্ড সংযোগ চালু করতে পারবেন। মোবাইল ব্রডব্যন্ড সম্পর্কে আরো জানতে দেখুন “মোবাইল ব্রডব্যান্ড শুরু থেকে শেষ”।
কিছু ইন্টারনেট সংযোগ (বিশেষ করে মোবাইল ব্রডব্যান্ড সংযোগ) সীমাবদ্ধ হয়, অর্থাৎ আপনার পরিকল্পনা (Plan) অনুসারে আপনি সর্বচ্চ প্রতি মাসে নির্দিষ্ট পরিমাণ ডাটা ব্যবহার করতে পারবেন। এই ধরনের পরিকল্পনায় আপনাকে সচেতন থাকতে হবে আপনার Plan এর বেশি ডাটা ব্যবহার করে যেন বাড়তি বিল গুনতে না হয়। আপনি এটি পরীক্ষা করতে পারবেন ডেস্কটপ এর নেটওয়ার্ক আইকন এ ক্লিক করার মাধ্যমে বা Settings Charms এর মাধ্যমে। আরো জানতে দেখুন “ Metered ইন্টারনেট সংযোগ: প্রায়ই জিজ্ঞাসিত প্রশ্ন”।

একটি নেটওয়ার্কের সঙ্গে সংযোগ

আপনি যখন প্রথম উইন্ডোজ Set up করবেন, আপনি সাথে সাথে একটি ইন্টারনেট সংযোগ এর সাথে সংযুক্ত থেকে থাকতে পারেন। যদি না থাকেন তাহলে বিদ্যমান নেটওয়ার্কের একটি তালিকা দেখতে পারেন এবং তাদের যেকোন একটির সাথে সংযোগ স্থাপন করতে পারেন।

04b755eb-5c2c-49f0-a048-4975b31799b6_7

61ec004f-77c1-4406-9f8e-5dc6785822dc_8

বিদ্যমান নেটওয়ার্কের তালিকা দেখতে

১। পর্দার ডান প্রান্তে সুইপ করে যান এবং Settings এ টোকা দিন।
(যদি আপনি মাউস ব্যবহার করতে চান তাহলে মাউস পয়েন্টার পর্দার ডান পার্শ্বের নিচের দিকে নিয়ে যেয়ে Settings এর উপর ক্লিক করুন।)
২। নেটওয়ার্ক আইকন চেক করুন। এটি আপনাকে দেখাবে আপনি সংযুক্ত আছেন কিনা এবং সংযুক্ত থাকলে সংযুক্তি কতটা শক্তিশালি।
৩। আপনি যদি সংযুক্ত না থাকেন তাহলে নেটওয়ার্ক আইকনে ক্লিক করুন (1 অথবা 2)
৪। টোকা দিন বা ক্লিক করুন আপনি যে নেটওয়ার্কে সংযুক্ত হতে চান এবং তারপর Connect এ ক্লিক করুন।
আপনাকে পাসওয়ার্ড প্রদান করার জন্য জিজ্ঞাস করতে পারে। আপনি এটি নেটওয়ার্ক এডমিন এর কাছে পাবেন। আপনি যদি বাড়িতে থাকেন তাহলে এটা পরিবারের যেকোন সদস্যের কাছেই থাকতে পারে। আপনি যদি কর্মক্ষেত্রে থাকেন আপনার আইটি এডমিন এর কাছে জিজ্ঞাস করুন। যদি আপনি  public place এ থাকেন যেমন- কফি শপ, এমন কাউকে জিজ্ঞাস করুণ যে সেখানে কাজ করে।
৫। যদি আপনি এই নেটওয়ার্কে সবসময় সংযুক্ত হতে চান তাহলে Connect automatically চেক বক্স এ ক্লিক করুন।

মোবাইলে ব্রডব্যান্ড কানেকশন ব্যবহার

মোবাইলে ব্রডব্যান্ড কানেকশন কিভাবে ব্যবহার করবেন তা জানতে দেখুন “মোবাইলে ব্রডব্যান্ড শুরু থেকে শেষ

একবার যখন Set up করবেন, উইন্ডোজ আপনাকে সংযুক্ত রাখবে – যখন আপনি চলন্ত অবস্থায় থাকবেন তখন সয়ংক্রিয়ভাবে Wi-Fi সংযোগ, মোবাইল ব্রডব্যান্ড সংযোগে পরিবর্তিত হবে। এইভাবে আপনি সংযুক্ত অবস্থায় থাকবেন, এমনকি যখন এক জায়গা থেকে অন্য জায়গায় চলন্ত অবস্থায় থাকবেন বা যাবেন তখনও সংযুক্ত থাকবেন। বা আপনার খরচ কম রাখার জন্য যেখানে Wi-Fi সংযোগ আছে সেখানে মোবাইল ব্রডব্যান্ড থেকে সয়ংক্রিয়ভাবে Wi-Fi এ সংযুক্ত হবেন ।

এয়ারপ্লেন মোড (Airplane mode)

আপনি যখন বিমানে থাকবেন, উড্ডয়ন ও অবতরণের সময় সকল ইলেকট্রনিক ডিভাইস এর পাউয়ার নিম্নগামি হয় । কিন্তু যখন আকাশে থাকবেন তখন আপনি আপনার পিসিকে Airplane mode এ নিয়ে যেতে পারেন এবং ডাউনলোডকৃত ছবি দেখতে পারেন, গেম খেলতে পারেন অথবা প্রেজেন্টেশন এর কাজ করতে পারেন। Airplane mode বিমানের নিয়ম অনুসারে আপনার পিসি থেকে যেকোন সংকেত অন্যত্র প্রেরণ বন্ধ করে দেয়।

Airplane mode ব্যবহার করতে

১। পর্দার ডান কর্ণারের দিকে যান এবং Settings এ প্রবেশ করুন।
(যদি আপনি মাউস ব্যবহার করতে চান তাহলে মাউস পয়েন্টার পর্দার ডান পার্শ্বের নিচের দিকে নিয়ে যেয়ে Settings এর উপরে ক্লিক করুণ)
২। নেটওয়ার্ক আইকনে ক্লিক করুন1
৩। যখন আপনি বিমানে থাকবেন তখন Airplane mode চালু করুন এবং যখন মাটিতে নামবেন তখন তা বন্ধ করুন।

Airplane mode
Airplane mode সম্পর্কে আরো জানতে দেখুন “Airplane mode কি?

Public Network এর গোপনীয়তা

আপনি যখন বাড়ি হতে দুরে যাবেন এবং Public Network ব্যবহার করবেন, যেমন কফি শপ অথবা বিমানবন্দর, আপনার পিসি এবং ডাটা সংরক্ষিত রাখার জন্য আপনাকে কিছু পদক্ষেপ নিতে হবে।

প্রথমবার যখন আপনি Public Network এর সাথে সংযুক্ত হবেন, তখন জিজ্ঞাসিত হতে পারেন যে, আপনি কোনো ডিভাইস খুঁজতে চান কিনা এবং সেই নেটওয়ার্কের সাথে সংযুক্ত হতে চান কিনা। বলুন না, কেননা তাহলে অন্যান্য লোকেরা আপনার পিসিকে দেখতে পারবে না যখন আপনি এই নেটওয়ার্ক এর সাথে সংযুক্ত হবেন। যদি আপনি হ্যাঁ বলে ফেলেন গাবরানোর কিছু নেই। আপনি কিভাবে আপনার Settings পরিবর্তন করবেন তা এখানো দেয়া হলো ।

Public Network এ আপনার ডাটা নিরাপদ রাখার জন্য

১। পর্দার ডান কর্ণারের দিকে যান এবং Settings এ প্রবেশ করুন।
(যদি আপনি মাউস ব্যবহার করতে চান তাহলে মাউস পয়েন্টার পর্দার ডান পার্শ্বের নিচের দিকে নিয়ে যেয়ে Settings এর উপরে ক্লিক করুণ)
2। ক্লিক Network, ক্লিক Connections এবং তারপর নেটওয়ার্ক এর নামের উপর ক্লিক করুন।
3। Find devices and content বন্ধ করুন। আপনি এখনও অনলাইনে যেতে পারবেন কিন্তু অন্যারা যারা এই Public Network ব্যবহার করছে তারা আপনার ডাটা নিয়ে যেতে পারবে না।

উইন্ডোজ ৮.১ টিউটোরিয়াল: কেন ব্যবহার করবেন? (Why Windows)

উইন্ডোজ ৮.১ ব্যবহার করার সাতটি কারণ

টাচ ডেস্কটপ তৈরি করা আগে কখনোই সহজ ছিল না।

১। এটি সহজ
উইন্ডোজ ৮.১ কে আপনি আপনার পরিচিত ডেস্কটপ দিয়ে শুরু করতে পারেন অথবা Live Tiles এর মতো অ্যাপ্লিক্যাশন হিসেবে শুরু করতে পারেন। আপনি টাচ, মাউস এবং কিবোর্ড ব্যবহার করতে পারবেন – যেটা আপনার কাছে সুবিধাজনক মনে হয়। আপনি যে সকল যন্ত্রপাতি ব্যবহার করতে চান তার সবই ব্যবহার করতে পারবেন কেননা সেগুলোর প্রায় সবগুলোই উইন্ডোজ উপযোগী। সেই সাথে আপনি আপনার কম্পিউটারে, ওয়েভ সাইটগুলোতে, ক্লাউড এবং অ্যাপ্লিকেশন গুলোতে এবং একই সাথে Bing Smart Search এর মাধ্যমে যেকোন বিষয় খুঁজে পেতে পারেন – শুধুমাত্র স্ত্রিনের ডানের সার্চ Charm এ প্রবেশ করার মাধ্যমে।

২। সকল অ্যাপ্লিকেশনস

উইন্ডোজ অ্যাপ্লিকেশনস এর জগৎ
Windows Store এ আপনি নতুন আবিস্কার এর সাথে সাথে আপনার পছন্দের অ্যাপ্লিকেশন খুঁজে পাবেন। এবং Built in App আপনাকে আরো বেশি কিছু করতে সাহায্য করবে যেমন- The Food & Drink App আপনাকে রান্নার কাজে সাহায্য করবে এবং Photo App আপনাকে নতুন ভাবে আপনার তোলা ছবি সম্পাদনা করতে সহায়তা করবে।

৩। যন্ত্র (ডিভাইসেস)

বিশাল সংখ্যক যন্ত্র আছে আপনার প্রতিটি প্রয়োজন, বাসনা এর জন্য।

৪। ব্যস্ততা

Tools আপনাকে সাহায্য করবে আপনার কাজ সম্পাদনের জন্য
Office Application এর মাধ্যমে আপনি কার্য্যত আপনার কাজ করার স্বাধীনতা পাবেন যেকোন স্থানে যেকোন Device এর মাধ্যমে। যে অফিস অ্যাপ্লিকেশন আপনি জানেন এবং যাকে বিশ্বাস করেন তার মাধ্যমে ডকুমেন্ট তৈরি করুণ, Cloud এ সংরক্ষণ করুণ এবং অফিস অনলাইনের মাধ্যমে একই সাথে (রিয়েল টাইম এ) ডকুমেন্ট সম্পাদনা ও অন্যকে সহযোগীতা করুণ। সেইসাথে আপনার যখন প্রয়োজন হবে তখন Multitasking Split Screen (একই সাথে একাধিক কাজ করার জন্য স্ক্রিণকে বিভক্ত করার মাধ্যমে) আপনাকে সহায়তা করবে। এবং Bing Smart Search আপনাকে যেকোন তথ্য খুঁজে পেতে সহায়তা করবে তা সে যেখানেই থাকুক।

৫। একে ব্যক্তিগত করা

টাইলসকে আপনার পছন্দ অনুযায়ী তৈরি করুণ
কিছু অ্যাপ্লিকেশন Live Tiles আছে সুতরাং আপনি এদেরকে খোলা ছাড়াই Real time update দেখতে পারবেন। এবং আপনি গুরুত্ব অনুযায়ী Tiles এর আকার ও বসানোর স্থান নির্দারণ করে দিতে পারবেন।

ডেস্কটপ রূপান্তরিত করণ
প্রগতিপন্থী (হাইপার) ডেস্কটপ চান? আপনি নিজস্বভাবে বিশ্বের যেকোন স্থান থেকে ব্যাকগ্রাউন্ড নিয়ে ডেস্কটপকে সৌন্দর্যমন্ডিত করতে পারেন এবং উইন্ডোজ থিম এর সাহায্যে সমন্বিত করতে পারেন ছবির সেট, কালার প্যালেট, শব্দ ও নকশা। হারলে যোগ করেছেন তার নিজস্ব মাছ ধরার ছবি তাও একটা কৌতুক তৈরি করেছে।

একেবারে ঠিক না হওয়া পর্যন্ত চিমটানো

উইন্ডোজ কাস্টমাইজ করুণ এবং নিজের বানান
Start Screen এর ব্যাকগ্রাউন্ড পছন্দ করুণ, স্থাপণ করুণ আপনার পছন্দের অ্যাপ্লিকেশন, গেম ফোল্ডার, প্রোফাইল বা ওয়েবসাইট এবং আপনার প্রয়োজন অনুসারে সাজান। এটি ঠিক না হওয়া পর্যন্ত Josh একে নিয়ে খামচাখামচি করেন। অনেকটা তার রেস্টুরেন্ট এর মেনু (খাবার তালিকা) তৈরি করার মতো।

৬। সবসময়ই সংযুক্ত

আপনার ডিভাইস জুড়ে এর উইন্ডোজ
OneDrive এর মাধ্যমে আপনি প্রবেশ করতে পারবেন আপনার সঙ্গীত, সিনেমা, ফটো, ডকুমেন্ট, সেটিংস, উইন্ডোজ অ্যাপস এমনকি ব্রাউজিং ইতিহাস আপনার যন্ত্রের (ডিভাইস এর) মাধ্যমে – সেইসাথে আপনি বিনামুল্যে পাবেন ১৫ গিগাবাইট জায়গা। যা ২৫৫ ঘন্টা সঙ্গিত বা ২০,০০০ ওয়ার্ড ডকুমেন্ট বা ৩০০.০০০ ফটো রাখার জন্য যথেষ্ট – অন্য কথায় এটি যথেষ্ট পরিমাণ জায়গা।

আপনি ইচ্ছা করলে একই Microsoft Account যেকোন Device এ ব্যবহার করতে পারবেন। এর মানে হলো আপনাকে শুধুমাত্র আপনার User ID এবং Password মনে রাখতে হবে এবং স্বয়ংক্রিয়ভাবে উক্ত Device আপনার পছন্দের তালিকা ও সেটিংস অনুযায়ী আপনাকে অনুসরণ করবে।

৭। এর মজা

উইন্ডোজ XBox আপনার বিনোদন কেন্দ্র
XBox আপনার সম্পূর্ণ বিনোদন কেন্দ্র – Cloud এ, Game এ প্রবেশ করায়, সঙ্গীত, চলচ্চিত্র, আই টিউনস লাইব্রেরি এবং অন্যান্য ক্ষেত্রে – বাড়িতে এবং যেখানেই যান।

XBox গেম:
XBox গেমস এ আপনার চাহিদা অনুসারে Tiles আছে এবং প্রতিদিনই নতুন নতুন যোগ হচ্ছে। আপনি অনেক Game এর জন্য Touch Screen  ব্যবহার করতে পারেন এবং পেতে পারেন অনন্য অভিজ্ঞতা। এবং XBox সেবার মাধ্যমে আপনি আপনার বন্ধুর সাথে কথা বলতে পারেন – বিশ্বস্ততার সাথে।

পিএইচপি : মাইএসকিউএল টেবিল তৈরি (PHP Create MySQL Tables)

একটি ডাটাবেস টেবিল এর নিজস্ব নাম থাকে এবং এটা কলাম ও সারি নিয়ে গঠিত হয়।

MySQLi এবং PDO ব্যবহার করে একটি মাইএসকিউএল ছক (table) তৈরি করা

মাইএসকিউএল এ টেবিল তৈরি করতে CREATE TABLE স্টেটমেন্ট ব্যাবহার করা হয়।
আমরা এখন “MyGuests” নামে একটি টেবিল তৈরি করবো যার “id”, “firstname”, “lastname”, “email” এবং “reg_date” নামে পাঁচটি কলাম থাকবে-


CREATE TABLE MyGuests (
 id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 firstname VARCHAR(30) NOT NULL,
 lastname VARCHAR(30) NOT NULL,
 email VARCHAR(50),
 reg_date TIMESTAMP
 )

 

 

উপরের টেবিল তৈরির জন্য কিছু নির্দেশনা

ডাটা টাইপ করার পরে, প্রতিটি কলামের জন্য অন্যান্য যে ঐচ্ছিক বৈশিষ্ট্যগুলি নির্দিষ্ট করতে পারেন তা নিচে দেওয়া হল :

  • NOT NULL –যে কলামকে NOT NULL করা হবে তার অবশ্যই একটা মান (value) থাকতে হবে। মান (value) না থাকলে প্রকাশ এর অনুমতি পাবে না।
  • DEFAULT value – যখন কোন মান (value) গৃহীত না হয়, তখন কোন ডিফল্ট (default) মান (value) যোগ করা ।
  • UNSIGNED – কলাম এ শুধুমাএ সংখ্যা ধারনের জন্য ব্যবহৃত হয়। শুধুমাএ সংরক্ষিত তথ্যের ইতিবাচক সংখ্যা এবং শূন্য সংখ্যার সীমা নিয়ন্ত্রণ করে।
  • AUTO INCREMENT – মাইএসকিউএল স্বয়ংক্রিয়ভাবে মান নিয়ন্ত্রণ করে।
  • PRIMARY KEY –কোন টেবিল এর সারিকে স্বতন্ত্রভাবে সনাক্ত করতে ব্যবহৃত।

যদি কোন টেবিল এ primary key কলাম থাকে (এই ক্ষেত্রে ধরলাম “id” কলামটিকে primary key করা হয়েছে) তাহলে এর মধ্যকার ডাটা এই টেবিলের সংরক্ষিত ডাটা এর মধ্যে ইউনিক হতে হবে।

নিম্নলিখিত উদাহরণ এ আমরা দেখবো পিএইচপি দ্বারা কিভাবে টেবিল তৈরি করতে হয়-

উদাহরণ (MySQLi Object-oriented)


< ?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 $dbname = "myDB";
// Create connection
 $conn = new mysqli($servername, $username, $password, $dbname);
 // Check connection
 if ($conn->connect_error) {
       die("Connection failed: " . $conn->connect_error);
 }
// sql to create table
 $sql = "CREATE TABLE MyGuests (
 id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 firstname VARCHAR(30) NOT NULL,
 lastname VARCHAR(30) NOT NULL,
 email VARCHAR(50),
 reg_date TIMESTAMP
 )";
if ($conn->query($sql) === TRUE) {
        echo "Table MyGuests created successfully";
 } else {
        echo "Error creating table: " . $conn->error;
 }
$conn->close();
 ?>

 

 

উদাহরণ (MySQLi Procedural)


< ?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 $dbname = "myDB";
// Create connection
 $conn = mysqli_connect($servername, $username, $password, $dbname);
 // Check connection
 if (!$conn) {
     die("Connection failed: " . mysqli_connect_error());
 }
// sql to create table
 $sql = "CREATE TABLE MyGuests (
 id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 firstname VARCHAR(30) NOT NULL,
 lastname VARCHAR(30) NOT NULL,
 email VARCHAR(50),
 reg_date TIMESTAMP
 )";
if (mysqli_query($conn, $sql)) {
      echo "Table MyGuests created successfully";
 } else {
      echo "Error creating table: " . mysqli_error($conn);
 }
mysqli_close($conn);
 ?>

 

 

উদাহরণ (PDO)


<?php
 $servername = "localhost";
 $username = "username";
 $password = "password";
 $dbname = "myDBPDO";
 
 try {
     $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
     // set the PDO error mode to exception
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
     // sql to create table
     $sql = "CREATE TABLE MyGuests (
     id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
     firstname VARCHAR(30) NOT NULL,
     lastname VARCHAR(30) NOT NULL,
     email VARCHAR(50),
     reg_date TIMESTAMP
     )";
 
     // use exec() because no results are returned
     $conn->exec($sql);
     echo "Table MyGuests created successfully";
     }
 catch(PDOException $e)
     {
     echo $sql . "<br>" . $e->getMessage();
     }
 
 $conn = null;
 ?>

 

 

এএসপি.নেট এমভিসি – এসকিউএল ডাটাবেজ . ASP.NET MVC – SQL Database

এএসপি.নেট এমভিসি – এসকিউএল ডাটাবেজ
Sheikh Mahfuzur Rahman
Bangla word: 300

এএসপি.নেট এমভিসি (ASP.NET MVC) শিখতে গিয়ে আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করছি। আজকে যার ষষ্ট পার্ট নিয়ে আলচোনা করা হবে। পূর্বের পার্টগুলো পড়ে না থাকলে প্রথমে পড়ে নিন।

ষষ্ট পার্টঃ ডাটাবেজ যোগ করা

ডাটাবেজটি তৈরি করা

ভিজ্যুয়াল ওয়েব ডেভলাপারে এসকিউএল সার্ভার কম্প্যাক্ট নামের একটি ফ্রি এসকিউএল ডাটাবেজ রয়েছে।
এই টিউটোরিয়ালের জন্য যে ডাটাবেজটি দরকার তা নিচের সহজ ধাপগুলো অনুসরণ করে তৈরি করা যায়ঃ

Solution Explorer ইউন্ডোতে গিয়ে App_Dat ফোল্ডারে রাইট-ক্লিক করুন
Add, New Item সিলেক্ট করুন
SQL Server Compact Local Database * সিলেক্ট করুন
ডাটাবেজটির নাম দিন Movies.sdf
Add বাটনে ক্লিক করুন

যদি এসকিউএল সার্ভার কম্প্যাক্ট লোকাল ডাটাবেজ অপশান হিশেবে না থাকে তাহলে এর মানে হলো আপনি আপনার কম্পিউটারে এসকিউএল সার্ভার কম্প্যাক্ট ইন্সটল করেননি। এই লিংক থেকে এটি ইন্সটল করে নিনঃ এসকিউএল সার্ভার কম্প্যাক্ট।

ভিজ্যুয়াল ওয়েব ডেভলাপার সয়ংক্রিয়ভাবে App_Data ফোল্ডারে ডাটাবেজটি তৈরি করে।

লক্ষ্যণীয়ঃ আশা করি, এই টিটোরিয়ালটি বুঝার জন্য আপনার এসকিউএল ডাটাবেজ সম্পর্কে কিছু ধারণা রয়েছে। যদি আপনি এসকিউএল সম্পর্কে প্রথমে জানতে চান তাহলে আমাদের এসকিউএল টিউটোরিয়াল পেজে ভিজিট করুন।

একটি ডাটাবেজ টেবল যোগ করা

App_Data ফোল্ডারের Movies.sdf ফাইলে ডাবল-ক্লিক করলে Database Explorer উইন্ডো খুলবে। ডাটাবেজটিতে একটি নতুন টেবল যোগ করতে Tables ফোল্ডারে রাইট-ক্লিক করুন এবং Create Table সিলেক্ট করুন।
নিচের কলামগুলো তৈরি করুনঃ

Column
Type
Allow Nulls
ID
int (primary key)
No
Title
nvarchar(100)
No
Director
nvarchar(100)
No
Date
datetime
No

কলামগুলোর ব্যাখ্যাঃ
ID হলো একটি ইন্টিজার বা পূর্ণ সংখ্যা যা কলামের প্রত্যকটি রেকর্ডকে চিহ্নিত করতে ব্যবহৃত হয়।
Title হলো একটি ১০০ অক্ষরের টেক্সট কলাম যা মুভির নাম সংরক্ষণ করে।
Director হলো একটি ১০০ অক্ষরের টেক্সট কলাম যা ডিরেক্টরের নাম সংরক্ষণ করে।
Date হলো একটি datetime কলাম যা মুভিটির রিলিজ ডেট সংরক্ষণ করে।

 

ছবিতে দেখুনঃ

http://bangla.salearningschool.com/aspnet/pic_mvc_dbexplorer.jpg

উপরোল্লিখিত কলামগুলো তৈরি করার পর আপনাকে অবশ্যই ID কলামকে টেবলের প্রাইমারি কি (primary key বা record identifier ) হিসেবে সেট করতে হবে। এটা করতে, কলামের নাম (ID) এ ক্লিক করুন এবং Primary Key সিলেক্ট করুন। তাছাড়া, Column Properties উইন্ডোতে Identity প্রপার্টিকে True তে সেট করুনঃ

টেবলে কলামগুলো তৈরি করা শেষ হলে, MovieDBs নাম দিয়ে টেবলটি সেভ করুন।

লক্ষ্যণীয়ঃ আমরা ইচ্ছাকৃতভাবে টেবলটির নাম দিয়েছি “MovieDBs” ( শেষে s রয়েছে )। পরবর্তী অধ্যায়ে আপনি ডাটা মডেলের জন্য “MovieDB” নামটি দেখবেন। এটা দেখতে অদ্ভুত দেখায়, কিন্তু এটাই নামকরণের রীতি যা আপনাকে কন্ট্রোলারটিকে ডাটাবেজ টেবলটির সাথে কানেক্ট করার উপযোগী করার জন্য ব্যবহার করতে হবে।

ডাটাবেজ রেকর্ড যোগ করা/Adding Database Records

মুভি ডাটাবেজে কিছু পরীক্ষামূলক রেকর্ড যোগ করতে ভিজ্যুয়াল ওয়েব ডেভলাপার ব্যবহার করতে পারেন।
App_Data ফোল্ডারে Movies.sdf ফাইলে ডাবল-ক্লিক করুন। ডাটাবেজ এক্সপ্লোরার উইন্ডোতে MovieDBs টেবলে রাইট ক্লিক করুন এবং Show Table Data সিলেক্ট করুন।

নিচের মতো কিছু রেকর্ড যোগ করুনঃ

ID
Title
Director
Date
1
Psycho
Alfred Hitchcock
01.01.1960
2
La Dolce Vita
Federico Fellini
01.01.1960

লক্ষ্যণীয়ঃ ID কলাম অটোমেটিকভাবে আপডেট হয়। আপনার এটাকে এডিট করার দরকার নেই।

পিএইচপি – মাইএসকিউএল এ ডাটা প্রবেশ করানো (PHP Insert Data Into MySQL in Bangla)

শেখ মাহফুজুর রহমান

 

MySQLi এবং PDO ব্যবহার করে মাইএসকিউএল এ ডাটা প্রবেশ করানো

একটি ডাটাবেজ এবং একটি টেবল তৈরি করার পর আমরা তাতে ডাটা যোগ করা শুরু করতে পারি।
এক্ষেত্রে যেসব সিনটেক্সট-নিয়ম অনুরসরন করতে হবেঃ

  • SQL কোয়ারিটি অবশ্যই PHP এর ভিতর কোটেড হতে হবে।
  • SQL কোয়ারির ভেতর স্ট্রিং ভ্যালুটি অবশ্যই কোটেড হতে হবে।
  • সংখ্যা বা নিউমেরিক ভ্যালুগুলো কোটেড হতে পারবেনা।
  • NULL শব্দটি কোটেড হতে পারবেনা।

INSERT INTO স্টেটমেন্টটি MySQL টেবলে নতুন রেকর্ড যোগ করার কাজে ব্যবহার করা হয়ঃ


INSERT INTO table_name (column1, column2, column3,…)
VALUES (value1, value2, value3,…)


 

এসকিউএল সম্পর্কে আরও জানতে আমাদের এসকিউএল টিটোরিয়ালটি পড়ুন।

 

পূর্বের অধ্যায়ে আমরা “MyGuests” নামের পাঁচ কলামের একটি খালি টেবল তৈরি করেছিলাম যার কলামগুলো ছিলঃ “id”, “firstname”, “lastname”, “email” and “reg_date” । এখন ঐ টেবলটিকে ডাটা দিয়ে পূর্ণ করা যাক।

লক্ষ্য রাখতে হবে, যদি একটি কলাম AUTO_INCREMENT (‘id’ কলামের মতো) অথবা TIMESTAMP (“reg_date” কলামের মতো) হয় তাহলে সেটিকে এসকিউএল কোয়ারি নির্দিষ্ট করে দিতে হয়না; MySQL সয়ংক্রিয়ভাবে ভ্যালু যোগ করে নিবে।

নিচের উদাহরণগুলো “MyGuests” টেবলে নতুন রেকর্ড যোগ করেঃ

উদাহরণ (MySQLi অবজেক্ট-অরিয়েন্টেড)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

 

উদাহরণ (MySQLi প্রসিডুরাল)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

 

উদাহরণ (PDO)


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('John', 'Doe', 'john@example.com')";
    // use exec() because no results are returned
    $conn->exec($sql);
    echo "New record created successfully";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;
?>

 

ASP.NET টিউটোরিয়াল :[পর্বঃ ১৫]:: ASP.NET Web Forms দিয়ে ডাটা লিস্ট কনট্রোল

ASP.NET টিউটোরিয়াল :[পর্বঃ ১৫]:: ASP.NET Web Forms দিয়ে ডাটা লিস্ট কনট্রোল
লেখকঃ মোস্তাফিজুর ফিরোজ ।

গত পর্বে আমরা রিপিট লিস্ট কনট্রোল শিখেছিলাম । এই পর্বে আমরা শিখবো ASP.NET Web Forms দিয়ে ডাটা লিস্ট কনট্রোল করা । শুধুই কনট্রোল আর কনট্রোল তাই নাহ? ;)

ডাটা লিস্ট কনট্রোলে ডাটাসেট বাইন্ড করা
ডাটা লিস্ট কনট্রোল হলো রিপিটার কন্ট্রোলের মত, যেটা কন্ট্রোলের জন্য বাউন্ড করা লিস্টে রিপিটেড লিস্টগুলোকে দেখায় । কিন্তু ডাটা লিস্ট কনট্রোল ডাটা আইটেমের চারিদিকে নিজে নিজে একটা টেবিল তৈরি করে থাকে । ডাটা লিস্ট কনট্রোল সাধারণত ডাটাবেজ টেবিল, XML file অথবা অনেকগুলো আইটেম এর সাথে বাউন্ড হয়ে থাকে ।
এখানে উদাহরণ হিসেবে “cdcatalog.xml” ফাইলকে দেখাচ্ছি ।

xml version=”1.0″ encoding=”ISO-8859-1″?>

<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
<cd>
<title>Still got the blues</title>
<artist>Gary Moore</artist>
<country>UK</country>
<company>Virgin records</company>
<price>10.20</price>
<year>1990</year>
</cd>
<cd>
<title>Eros</title>
<artist>Eros Ramazzotti</artist>
<country>EU</country>
<company>BMG</company>
<price>9.90</price>
<year>1997</year>
</cd>
</catalog>

এটাকে এখন cdcatalog.xml এই নামে সেভ করে ওপেন করেই দেখুন না ।

প্রথমে “System.Data” নামে কোনো নেমস্পেস কে ইম্পোর্ট করতে হবে । ডাটাসেট অবজেক্ট এর কাজের জন্য এই নেমস্পেসকে দরকার পড়বে । .aspx পেজের সবার উপরে নিচের কোডটুকু যোগ করে নেই ।

<%@ Import Namespace=”System.Data” %>

তারপর XML file এর জন্য একটা ডাটাসেট তৈরী করে নেই । পেজটি যখন প্রথম লোড নিবে তখন ডাটাসেট থেকে XML file টি লোড নিবে ।

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
end if
end sub

এখন আমরা .aspx page এ আরেকটা রিপিটার কনট্রোল তৈরী করবো । এর ভিতরে <HeaderTemplate> টি প্রথমে এবং একবারই সম্পাদন করবে । অবশ্য <ItemTemplate> এলিমেন্ট টি ডাটাসেটের রেকর্ড এর উপর নির্ভর করে রিপিট হতে পারে । কিন্তু <FooterTemplate> এলিমেন্ট টি কিন্তু একবারই সম্পাদিত হয়ে নিচের মত আউটপুট দিবে ।

<html>
<body>

<form runat=”server”>
<asp:DataList id=”cdcatalog” runat=”server”>

<HeaderTemplate>

</HeaderTemplate>

<ItemTemplate>

</ItemTemplate>

<FooterTemplate>

</FooterTemplate>

DataList>
form>

</body>
</html>

তারপর আমরা ডাটাসেট তৈরির জন্য স্ক্রিপ্ট যোগ করবো । এটাকে তখন রিপিটার কনট্রোলের mycdcatalog ডাটাসেটের সাথে বাইন্ড করবো । তারপর <HeaderTemplate> ব্যবহার করবো হেডার টেবিল দেখানোর জন্য, <ItemTemplate> ব্যবহার করবো ডাটা আইটেম দেখানোর জন্য এবং <FooterTemplate> ব্যবহার করবো টেক্সট দেখানোর জন্য । ডাটা লিস্টে “both” অ্যাট্রিবিউট যোগ করে টেবিল বর্ডার দেখাতে সক্ষম হবো ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:DataList id=”cdcatalog”
gridlines=”both” runat=”server”>

<HeaderTemplate>
My CD Catalog
</HeaderTemplate>

<ItemTemplate>
“<%#Container.DataItem(“title”)%>” of
<%#Container.DataItem(“artist”)%> –
$<%#Container.DataItem(“price”)%>
</ItemTemplate>

<FooterTemplate>
Copyright Hege Refsnes
</FooterTemplate>

DataList>
form>

</body>
</html>

স্টাইলের ব্যবহারঃ
আপনি আপনার ইচ্ছামত করে স্টাইল যোগ করে নিতে পারবেন ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:DataList id=”cdcatalog”
gridlines=”both” runat=”server”>

<HeaderTemplate>
My CD Catalog
</HeaderTemplate>

<ItemTemplate>
“<%#Container.DataItem(“title”)%>” of
<%#Container.DataItem(“artist”)%> –
$<%#Container.DataItem(“price”)%>
</ItemTemplate>

<FooterTemplate>
Copyright Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

<AlternatingItemTemplate> এর ব্যবহার
<ItemTemplate> এলিমেন্টের পরিবর্তে আমরা <AlternatingItemTemplate> এলিমেন্ট ব্যবহার করতে পারি নিচের মত করে ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:DataList id=”cdcatalog”
runat=”server”
cellpadding=”2″
cellspacing=”2″
borderstyle=”inset”
backcolor=”#e8e8e8″
width=”100%”
headerstyle-font-name=”Verdana”
headerstyle-font-size=”12pt”
headerstyle-horizontalalign=”center”
headerstyle-font-bold=”True”
itemstyle-backcolor=”#778899″
itemstyle-forecolor=”#ffffff”
alternatingitemstyle-backcolor=”#e8e8e8″
alternatingitemstyle-forecolor=”#000000″
footerstyle-font-size=”9pt”
footerstyle-font-italic=”True”>

<HeaderTemplate>
My CD Catalog
</HeaderTemplate>

<ItemTemplate>
“<%#Container.DataItem(“title”)%>” of
<%#Container.DataItem(“artist”)%> –
$<%#Container.DataItem(“price”)%>
</ItemTemplate>

<AlternatingItemTemplate>
“<%#Container.DataItem(“title”)%>” of
<%#Container.DataItem(“artist”)%> –
$<%#Container.DataItem(“price”)%>
</AlternatingItemTemplate>

<FooterTemplate>
© Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

আসলেই ডিজাইন টা হলো নিজের মনের মত । আপনি যদি কোডিং একটু ভালো বুঝতে পারেন তাহলে আপনার মনের মত করে সবকিছু সাজাতে পারবেন ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ১৪]:: ASP.NET Web Forms দিয়ে রিপিটেড লিস্ট কনট্রোল

ASP.NET টিউটোরিয়াল :[পর্বঃ ১৪]:: ASP.NET Web Forms দিয়ে রিপিটেড লিস্ট কনট্রোল
লেখকঃ মোস্তাফিজুর ফিরোজ ।

এক জিনিস বার বার যদি আসে তাহলে কেমন লাগে? খুবই বিরক্ত তাই না? আসুন আজ আমরা তাই ASP.NET Web Forms দিয়ে রিপিটেড লিস্ট কনট্রোল করা শিখবো । তাহলে আর মেজাজ গরম হবে না ।

রিপিটার কন্ট্রোলে ডাটাসেট বাইন্ড
রিপিটার কনট্রোল হল কন্ট্রোলে বাউণ্ড হওয়া লিস্টের রিপিট লিস্ট দেখানো । রিপিটার কনট্রোল সাধারণত ডাটাবেজ টেবিল, XML file অথবা অনেকগুলো আইটেম এর সাথে বাউন্ড হয়ে থাকে । এখন আমি দেখাবো XML file কে কিভাবে একটি রিপিটার কন্ট্রোলের সাথে বাইন্ড করা যায় ।
এখানে উদাহরণ হিসেবে “cdcatalog.xml” ফাইলকে দেখাচ্ছি ।

xml version=”1.0″ encoding=”ISO-8859-1″?>

<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
<cd>
<title>Still got the blues</title>
<artist>Gary Moore</artist>
<country>UK</country>
<company>Virgin records</company>
<price>10.20</price>
<year>1990</year>
</cd>
<cd>
<title>Eros</title>
<artist>Eros Ramazzotti</artist>
<country>EU</country>
<company>BMG</company>
<price>9.90</price>
<year>1997</year>
</cd>
</catalog>

এটাকে এখন cdcatalog.xml এই নামে সেভ করে ওপেন করেই দেখুন না ।

প্রথমে “System.Data” নামে কোনো নেমস্পেস কে ইম্পোর্ট করতে হবে । ডাটাসেট অবজেক্ট এর কাজের জন্য এই নেমস্পেসকে দরকার পড়বে । .aspx পেজের সবার উপরে নিচের কোডটুকু যোগ করে নেই ।

<%@ Import Namespace=”System.Data” %>

তারপর XML file এর জন্য একটা ডাটাসেট তৈরী করে নেই । পেজটি যখন প্রথম লোড নিবে তখন ডাটাসেট থেকে XML file টি লোড নিবে ।

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
end if
end sub

এখন আমরা .aspx page এ আরেকটা রিপিটার কনট্রোল তৈরী করবো । এর ভিতরে <HeaderTemplate> টি প্রথমে এবং একবারই সম্পাদন করবে । অবশ্য <ItemTemplate> এলিমেন্ট টি ডাটাসেটের রেকর্ড এর উপর নির্ভর করে রিপিট হতে পারে । কিন্তু <FooterTemplate> এলিমেন্ট টি কিন্তু একবারই সম্পাদিত হয়ে নিচের মত আউটপুট দিবে ।

<html>
<body>

<form runat=”server”>
<asp:Repeater id=”cdcatalog” runat=”server”>

<HeaderTemplate>

</HeaderTemplate>

<ItemTemplate>

</ItemTemplate>

<FooterTemplate>

</FooterTemplate>

</asp:Repeater>
form>

</body>
</html>

তারপর আমরা ডাটাসেট তৈরির জন্য স্ক্রিপ্ট যোগ করবো । এটাকে তখন রিপিটার কনট্রোলের mycdcatalog ডাটাসেটের সাথে বাইন্ড করবো । তারপর <%#Container.DataItem(“fieldname”)%> মেথডের মাধ্যমে <ItemTemplate> section এর সাথে রিপিটার কনট্রোল এবং এইচটিএমএল ট্যাগের বাইণ্ড করবো ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:Repeater id=”cdcatalog” runat=”server”>

<HeaderTemplate>
<table border=”1″ width=”100%”>
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th>
<th>Company</th>
<th>Price</th>
<th>Year</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem(“title”)%></td>
<td><%#Container.DataItem(“artist”)%></td>
<td><%#Container.DataItem(“country”)%></td>
<td><%#Container.DataItem(“company”)%></td>
<td><%#Container.DataItem(“price”)%></td>
<td><%#Container.DataItem(“year”)%></td>
</tr>
</ItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
form>

</body>
</html>

<AlternatingItemTemplate> এর ব্যবহার
<ItemTemplate> এলিমেন্টের পরিবর্তে আমরা <AlternatingItemTemplate> এলিমেন্ট ব্যবহার করতে পারি নিচের মত করে ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:Repeater id=”cdcatalog” runat=”server”>

<HeaderTemplate>
<table border=”1″ width=”100%”>
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th>
<th>Company</th>
<th>Price</th>
<th>Year</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem(“title”)%></td>
<td><%#Container.DataItem(“artist”)%></td>
<td><%#Container.DataItem(“country”)%></td>
<td><%#Container.DataItem(“company”)%></td>
<td><%#Container.DataItem(“price”)%></td>
<td><%#Container.DataItem(“year”)%></td>
</tr>
</ItemTemplate>

<AlternatingItemTemplate>
<tr bgcolor=”#e8e8e8″>
<td><%#Container.DataItem(“title”)%></td>
<td><%#Container.DataItem(“artist”)%></td>
<td><%#Container.DataItem(“country”)%></td>
<td><%#Container.DataItem(“company”)%></td>
<td><%#Container.DataItem(“price”)%></td>
<td><%#Container.DataItem(“year”)%></td>
</tr>
</AlternatingItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
</form>

</body>
</html>

<SeparatorTemplate> এর ব্যবহার
আবার <ItemTemplate> এলিমেন্টের পরিবর্তে আমরা <SeparatorTemplate> এলিমেন্ট ব্যবহার করতে পারি নিচের মত করে ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:Repeater id=”cdcatalog” runat=”server”>

<HeaderTemplate>
<table border=”0″ width=”100%”>
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th>
<th>Company</th>
<th>Price</th>
<th>Year</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem(“title”)%></td>
<td><%#Container.DataItem(“artist”)%></td>
<td><%#Container.DataItem(“country”)%></td>
<td><%#Container.DataItem(“company”)%></td>
<td><%#Container.DataItem(“price”)%></td>
<td><%#Container.DataItem(“year”)%></td>
</tr>
</ItemTemplate>

<SeparatorTemplate>
<tr>
<td colspan=”6″><hr /></td>
</tr>
</SeparatorTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
</form>

</body>
</html>

দেখলেন তো নিজের ইচ্ছামত কত রকমের ট্যাগ ব্যবহার করা যাচ্ছে । আপনি একটু ভালভাবে প্র্যাকটিস করলে নিজের মত করে পরিবর্তন করে ব্যবহার করতে পারবেন । তাহলে এবার একটু মেজাজ ঠান্ডা হয়েছে তো ?