سبد (0)

تبلیغات

ایجاد پایگاه داده در PHP

پایگاه داده شامل یک یا جند جدول است.

باید بدانید که برای ایجاد یا حذف پایگاه داده، باید دسترسی لازم را داشته باشید.


ایجاد پایگاه داده با استفاده از MySQLi و PDO

Wiki

دستور CREATE DATABASE برای ایجاد یک پایگاه داده در MySQL استفاده می شود.

نحوه استفاده:

CREATE DATABASE database_name

در مثال زیر یک پایگاه داده به نام "myDB" ایجاد کرده ایم:

مثال (MySQLi Object-oriented)

<?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();
?>
Note توجه: زمانی که می خواهید یک پایگاه داده جدید ایجاد کنید، در شیء mysqli تنها سه آرگومان اول را باید مشخص نمایید. (servername و username و password)
نکته:
اگر برای اتصال به پایگاه داده باید از یک Port مشخص استفاده نمایید، برای تنظیم این آرگومان در شیء mysqli باید آرگومان چهارم یعنی database-name را با یک رشته خالی تنظیم نمایید و سپس آرگومان پنجم را برای تنظیم Port استفاده نمایید:
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);
?>

در مثال زیر یک پایگاه داده به نام "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 وجود کلاس exception برای مدیریت خطاها است. همان طور که می دانید این خطاها ممکن است در کوئری های پایگاه داده رخ دهد و اگر یک استثنا یا exception از داخل بلاک { }try پرتاب (thrown) شود، اجرای اسکریبت متوقف شده و جریان کار به اولین بلاک { }catch منتقل می شود. در واقع استثنای که در قسمت try رخ داده در قسمت catch به دام می افتد. در بلاک catch، با استفاده از دستور echo، دستور SQL و متن خطای تولید شده را چاپ می کنیم.


برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

دیدگاه‌ها  

0 # Ali DuzandehFerdows 1395-02-15 23:29
با عرض سلام

پایگاه داده ای در لوکال هاست ومپ ایجاد کردم و با php فرمی رو در این دیتابیس ذخیره میکنم
ذخیره اتفاق میوفته اما قبل درج پیام موفقیت آمیز بودن ذخیره اطلاعات خطای :
Deprecated: mysql_connect() : The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\ham gaman\db.php on line 13

رو میده
نسخه ومپ 2.5 آپاچی 2.4.9 و پی اچ پی 5.5.12 ، مای اسکیوال 5.6.17
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # مهرداد صلاحی 1395-02-17 17:31
با سلام و وقت بخیر
متن خطا داره میگه مشکل از کجاست. شما از mysql برای کار با بانک اطلاعاتی استفاده کردید، در صورتی که توابع mysql منسوخ شده و شما باید از mysqli یا PDO استفاده کنید. mysql‌ بیشتر جنبه‌ی آموزشی داره و تو کدهای واقعی استفاده نمیشه.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # arash101 1394-12-08 11:21
سلام خسته نباشید
من الان روی سیستمم از ویژوال استفاده میکنم و IIS پورت 80 رو گرفته و منم مجبورشدم پورت apache رو به 90 تغییر بدم الان برای ساخت پایگاه داده این کد
;(conn = new mysqli($servern ame, $username, $password, "", 90
رو زدم و چند نمونه دیگه که هیچ کدوم کار نکردن و این خطا رو میده
Apache/2.4.9 (Win64) PHP/5.5.12 Server at localhost Port 90
و البته احتمال دادم مشکل از نام سرور باشه به همین خاطر $servername روو هم به loacalhost:90 تغییر دادم و با ای پی هم وارد کردم بازم مشکل حل نشد
ممنون میشم راهنمایی کنید
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # مهرداد صلاحی 1394-12-10 21:00
با سلام و تشکر.
بهتره پورت‌های پیش فرض رو تغییر ندید.
وقتی پورت رو باز یا بسته می‌کنید، باید از طریق فایروال هم این موضوع رو بررسی و چک کنید تا داده‌ها بتونه از اون پورت رد و بدل بشه، یا فیلتر بشه.
پورت رو به حالت اول برگردونید، و بعد مشکلتون رو اعلام کنید تا بشه راهنمایی کرد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # فریبا mizraee 1394-09-08 02:21
[php]

[/php]
هیچ پایگاه داده ای در سرویس لوکال نمیسازه ارورر میده میگه myDB یافت نشد خوب میخوام این پایگاه داده ایجاد بشه نمیخوام یافت بشه
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # مهرداد صلاحی 1394-09-08 07:12
معمولا در کدنویسی جداول رو تو خود mysql می‌سازن و کمتر از کد php برای ساخت جدول استفاده می‌کنن.
ساخت جدول درون کد php به ندرت استفاده میشه، اما اگه شما قصد دارید این کار رو انجام بدید، بهتره درون کد خودتون جدول رو اینطور ایجاد کنید، یعنی اولش کد زیر رو بیارید:
CREATE TABLE IF NOT EXISTS table_name(. . .); //comment

اگر دقت کنید، در کد بالا می‌بینید که جدول در صورتی ایجاد میشه که وجود نداشته باشه! اگر وجود داشت، جدولی ساخته نمیشه، و خطایی هم داده نمیشه.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # فریبا mizraee 1394-09-08 13:51
با عرض پوزش فکر کنم نتونستم درست بیان کنم منظورم رو
بینید تو مثال های بالا
مثال (MySQLi Object-oriented)
و
مثال (MySQLi Procedural)
هردو به راحتی میتونن یم دیتا بیس بدون ساخت جدول (فقط و فقط نام دیتابیس) رو ایجاد می کنن
اما مثال سوم :
مثال(PDO) نمی تونه پایگاه داده جدیدی را از نو بسازه دنبال پایگاه داده myDB میگرده
توجه داشته باشید نمی خوام جدول بسازم میخوام دیتابیس با کد کریت بشه همین
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # hamid fa 1394-09-08 21:06
سلام خدمت شما
ببینید در مثال pdo نام دیتا بیس یه بار mypdo گذاشته شده یه بار mydb شما هر دو جا باید یه نام بذارید تا دیتابیستون ساخته بشه اگه مشکل داشتید بازم پیام بدید مشکلتون توسط من وهمکاران حل میشه

تشکر
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # فریبا mizraee 1394-09-08 21:54
یه دنیا ممنونم
مشکلم حل شد ولی یه ارورری دارم
CREATE DATABASE myDB
SQLSTATE[HY000]: General error: 1007 Can't create database 'mydb'; database exists
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # مهرداد صلاحی 1394-09-09 07:07
اگر دقت کنید به آخر متن به عبارت database exists برخورد می‌کنید. این عبارت داره میگه که جدول موردنظر موجود هست.

در دیتابیس نمیشه دو جدول هم‌نام وجود داشته باشه. در تعریف جدول اگر فقط از CREATE TABLE استفاده کرده باشید، و اون جدول در دیتابیس وجود داشته باشه، با پیغام خطا مواجه می‌شید.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
-1 # فریبا mizraee 1394-09-07 17:17
سلام من لوکال کار میکنم
این کد

جواب نمیده با این پیام رو برو میشم لطفا کمک کنید
SQLSTATE[42000] [1049] Unknown database 'mydb'
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # hamid fa 1394-09-07 17:41
با سلام خدمت شما کاربر عزیز و گرامی

همونطور که از ارور شما پیداست دیتا بیسی ب نام mydb رو نشناخته شما یه چک کنید بینید اصلا دیتابیسی به این نام ساخته اید یا نه ؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # امین 1394-08-10 16:12
با سلام خدمت شما عزیزان
من یه مشکلی دارم.اونم اینه که هر 3تا کدی که شما اینجا قرار دادید وقتی که خودم استفاده میکنم اررور میده؟ببخشید مشکل از چیه؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # مهرداد صلاحی 1394-08-10 20:30
با سلام.
دقیقا چیه کدی؟؟؟ و اینکه متن خطایی که برای شما میاد چیه؟؟؟
لطفا متنش رو بذارید تا بشه دقیق راهنمایی کرد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # امین 1394-08-17 10:47
ERROR CREATING DATABASE: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CFREATE DATABASE myDB' at line 1

اینم ارروری که میده!
دقیقا چیزی که شما برای قسمت object oriented نوشتید رو خودم مینویسم اروور میده.اما وقتی کد و کپی میکنم و میازرم داخل محیط کدزنی و اجراش میکنم پیغام میده که دیتا بیس ایجاد شد و چک کردم دیدم ایجادم شده.اگه میشه راهنمایی کنید چون من از طریق این سایت دارم اموزش میبینم و خیلی چیزارو هنوز بلد نیستم
ممنون
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
-1 # مهرداد صلاحی 1394-08-17 10:58
با سلام.
کد ساخت جدول رو قرار بدید.
متن خطا میگه که سینتکس ایجاد جدول خطا داره.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # امین 1394-08-17 10:31
به نقل از مهرداد صلاحی:
با سلام.
دقیقا چیه کدی؟؟؟ و اینکه متن خطایی که برای شما میاد چیه؟؟؟
لطفا متنش رو بذارید تا بشه دقیق راهنمایی کرد.


سلام
اون اررور قبلم برطرف شد چون مشکل از نام کاربری بود که باید root قرار میدادم
الان یه سوال دارم.این دی که برای ایجاد پایگاه داده قرار دادید رو من استفاده کردم. اما پیغام error creatin database رو بهم داد.چرا دیتابیس ایجاد نشد؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # حمید1 1394-08-10 11:52
سلام! میشه این علامت فلش رو توضیح بدید؟
تو مثال pdo اونجا که متغییر conn به exec ربط داده شده یک علامت منهی و یک علامت بزرگتر آوردید!‌ دقیقا یعنی چی؟
یعنی متغییر conn رو بریز تو exec?
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # مهرداد صلاحی 1394-08-10 12:55
با سلام.
باید بگم که توسط این علامت میتوان به متدها و خصوصیات یک کلاس دسترسی پیدا کرد. شما باید مباحث شیءگرایی و کلاسها رو مطالعه کنید.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # sara 1394-02-05 11:49
سلام و خسته نباشید
من wamp server رو سیستم نصب کردم که mysql 5.5.24 رو داره الان میشه راهنمایی کنید چیکار کنم؟ و این کدهایی که برای ارتباط با پایگاه داده در بالا گفتید دقیقا کجا باید بذاریمشون؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
-1 # مهرداد صلاحی 1394-08-10 12:58
کجا با پایگاه داده ارتباط رو برقرار میکنید (ساخت و اتصال به دیتابیس)؟
همونجا!!!
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # evil 1393-10-02 22:10
لطفا قسمت database رو آپدیت کنید .تو php5از PDO و Mysqli استفاده میشه .mysql رو php5 جواب نمیده
باتشکر
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # امیر پهلوان صادق 1393-10-03 16:40
ممنون، در حال به روز رسانی مطالب هستیم ...!
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+5 # mahdikhanzadi 1393-03-10 21:35
تابع mysql_connect دیگه داره باطل میشه و باید از تابع msqli_connect استفاده کرد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی PHP

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان
 
دوره های آموزشی راه اندازی کسب و کارهای اینترنتی
تبلیغات اینترنتی