شنبه ۲۲ شهریور ۱۴۰۴

Saturday, September 13, 2025 GMT +3:30

ساخت دیتابیس، جدول و ستون با دستور CREATE در MySQL

mysql-create-table

شیوه دستی ایجاد پایگاه داده در برنامه phpMyAdmin به خودی خود روش مناسبی است اما برنامه نویسان وب عموما با کدنویسی و دنیای کدها سر و کار دارند و تمرکز آموزش های پیش رو نیز در همین چارچوب است، برای ساخت دیتابیس، جدول و ستون در برنامه نویسی PHP باید از دستور CREATE استفاده کنیم، CREATE یکی از دستورات آشنا در زبان SQL است که به کمک آن می توانیم دیتابیس، جدول و ستون های مورد نظر را با اجرای کدهای برنامه نویسی در MySQL و به کمک اکستنشن های متداول ایجاد کنیم، دقت کنیم همانطور که قبلا گفتیم پایگاه داده MySQL با اکستنشن MySQL دو مفهوم جداگانه هستند، عبارت اول اشاره به سیستم مدریت پایگاه داده MySQL دارد اما عبارت دوم یک برنامه کوچک نرم افزای در مفسر PHP است که به این زبان قابلیت ارتباط با پایگاه داده را می دهد، اکستنشن MySQL اولین اکستنشن PHP برای این منظور بوده و در حال حاضر منسوخ و قدیمی شده است، لذا بهتر است از اکستنشن های جدید مانند MySQLi یا PDO استفاده کنیم.

ساخت دیتابیس با دستور CREATE DATABASE در MySQL


علاوه بر شیوه دستی ساخت دیتابیس از طریق برنامه phpMyAdmin، کدهای PHP نیز چنین قابلیتی دارند که با برنامه نویسی بتوانیم دیتابیس مورد نیازمان را بسازیم، این کار با دستور CREATE DATABASE صورت می گیرد که در زیر دیتابیس فرضی dbname را به این روش ساخته ایم.
برنامه نویسی رویه ای (Procedural):
<?php
//اتصال به دیتابیس
$conn = mysqli_connect("localhost", "username", "password");
if(!$conn) {
    echo "PHP & MySQL Connection: Error! " . mysqli_connect_errno() . ' - ' . mysqli_connect_error();
    exit;
} else {
    echo "PHP & MySQL Connection: Ok!<br>";
    
    //ساخت دیتابیس
    $sql = "CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_persian_ci";
    $query = mysqli_query($conn, $sql);
    if(!$query) {
        echo "Creating Database dbname: Error! " . mysqli_error($conn);
    } else {
        echo "Creating Database dbname: OK!";
    }
}
//پایان اتصال
mysqli_close($conn);
?>
برنامه نویسی شی گرا (Object-oriented):
<?php
//اتصال به دیتابیس
$conn = new mysqli("localhost", "username", "password");
if(!$conn) {
    echo "PHP & MySQL Connection: Error! " . $conn->errno . ' - ' . $conn->error;
    exit;
} else {
    echo "PHP & MySQL Connection: Ok!<br>";
    
    //ساخت دیتابیس
    $sql = "CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_persian_ci";
    $conn->query($sql);
    if(!$conn) {
        echo "Creating Database dbname: Error! " . $conn->error;
    } else {
        echo "Creating Database dbname: OK!";
    }
}
//پایان اتصال
$conn->close();
?>
همان طور که در نمونه کد بالا ملاحظه می کنید دستور CREATE به تنهایی کاربردی ندارد و در کنار پارامترهای دیگر کامل می شود، برای ساخت دیتابیس باید در کنار CREATE از دستور DATABASE استفاده کنیم، همچنین برای اعمال تنظیمات دلخواه پارامترهای دیگری مانند DEFAULT CHARACTER SET و COLLATE استفاده شده که کارکرد مشابهی با حالت دستی در برنامه phpMyAdmin دارند، این دستورات یونیکد پیش فرض دیتابیس را تعیین می کنند که برای سازگاری با زبان فارسی باید مقدار utf8 و utf8_persian_ci برای آنها در نظر گرفته شود، ci در عبارت utf8_persian_ci مخفف case-insensitive و به معنی غیرحساس به حروف بزرگ و کوچک است.
نکته 1: قبل از اجرای دستورات باید اطلاعات مورد نیاز را در قسمت username و password مطابق با حساب کاربری پایگاه داده در کد جایگزین کنیم، در لوکال هاست نام کاربری معمولا root و بدون کلمه عبور است، همچنین در قسمت dbname می توانیم نام دیگری برای پایگاه داده در نظر بگیریم.
نکته 2: تابع mysqli_query و متد query در اکستنشن MySQLi جهت اجرای فرآیند پرس و جو بین کدهای PHP و دیتابیس MySQL کاربرد دارند.

ساخت جدول و ستون با دستور CREATE TABLE


پس از ساختن دیتابیس با دستور CREATE DATABASE نوبت به ایجاد جداول و ستون ها است که این کار با دستور CREATE TABLE انجام می شود، در نمونه کد زیر با استفاده از این دستور جدول فرضی tblname را با چند ستون id، name و status ساخته ایم.
برنامه نویسی رویه ای (Procedural):
<?php
//اتصال به دیتابیس
$conn = mysqli_connect("localhost", "username", "password", "dbname");
if(!$conn) {
    echo "PHP & MySQL Connection: Error! " . mysqli_connect_errno() . ' - ' . mysqli_connect_error();
    exit;
} else {
    echo "PHP & MySQL Connection: Ok!<br>";
    
    //ساخت جدول و ستون ها
    $sql = "CREATE TABLE tblname(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    status TINYINT(1) DEFAULT 0)
    ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_persian_ci"
;
    $query = mysqli_query($conn, $sql);
    if(!$query){
        echo "Creating Table tblname: Error! " . mysqli_error($conn);
    } else{
        echo "Creating Table tblname: OK!";
    }
}
//پایان اتصال
mysqli_close($conn);
?>
برنامه نویسی شی گرا (Object-oriented):
<?php
//اتصال به دیتابیس
$conn = new mysqli("localhost", "username", "password", "dbname");
if(!$conn) {
    echo "PHP & MySQL Connection: Error! " . $conn->errno . ' - ' . $conn->error;
    exit;
} else {
    echo "PHP & MySQL Connection: Ok!<br>";
    
    //ساخت جدول و ستون ها
    $sql = "CREATE TABLE tblname(
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    status TINYINT(1) DEFAULT 0)
    ENGINE=MyISAM DEFAULT CHARACTER SET=utf8 COLLATE=utf8_persian_ci"
;
    $conn->query($sql);
    if(!$conn) {
        echo "Creating Table tblname: Error! " . $conn->error;
    } else {
        echo "Creating Table tblname: OK!";
    }
}
//پایان اتصال
$conn->close();
?>
در کد بالا پرس و جوی ساخت یک جدول با سه ستون id، name و status را اجرا کرده ایم و به هر ستون ویژگی هایی را متناسب با نوع و کارکرد آن نسبت داده ایم که در این مرحله از آموزش صرفا جهت آشنایی اولیه به توضیح مختصر آنها می پردازیم، مواردی مانند INT، VARCHAR و TINYINT نشان دهنده نوع داده ای است که در آن ستون ذخیره می شوند، در خصوص انواع داده در MySQL در آموزش های بعدی به طور خاص صحبت خواهیم کرد، پارامتر NOT NULL به این معنی است که ردیف های اطلاعاتی به صورت پیش فرض NULL یا خالی نیستند، AUTO_INCREMENT نیز به این معنی است که مقدار این ستون با هر INSERT اطلاعات به صورت پیش فرض افزایش پیدا می کند و نیازی به مقداردهی آن در هنگام اجرای پرس و جو نیست، پارامتر PRIMARY KEY نیز یک سیستم در MySQL است که کلید اصلی را مشخص می کند، منظور از این عبارت ایجاد کلیدهای منحصر به فرد جهت دسته بندی بهتر و جستجوی سریع تر در بین ردیف های اطلاعاتی است، در این سیستم هر ردیف در هر جدول یک کلید منحصر به فرد خواهد داشت که در هنگام بازیابی اطلاعات کار جستجو بسیار سریع تر خواهد شد، از پارامتر DEFAULT برای درج یک مقدار پیش فرض به صورت خودکار استفاده می شود، در این نمونه کد عدد 0 به عنوان مقدار پیش فرض برای ستون status در نظر گرفته شده است، پارامتر ENGINE=MyISAM برای تنظیم موتور MyISAM به عنوان موتور پیش فرض برای جدولی است که قصد ایجاد آن را داریم (Syntax آن در برخی نسخه ها به صورت TYPE=MyISAM است، در MySQL به طور معمول دو موتور MyISAM و INNODB استفاده می شوند).
نکته 1: تابع mysqli_connect در دستور CREATE TABLE چهار آرگیومنت دارد که مورد آخر نام دیتابیسی است که می خواهیم در آن جدول ساخته شود، در اینجا دیتابیسی که قبلا با دستور CREATE DATABASE ساخته بودیم (dbname) را به عنوان آرگیومنت چهارم درج کرده ایم.
نکته 2: هر درخواستی که از دیتابیس انجام می شود را در اصطلاح پرس و جو یا Query می نامند، MySQL در پرس و جوهای خود از زبانی به نام SQL استفاده می کند که مخفف Structured Query Language است.
دسته بندی: آموزش مقدماتی » MySQL
related مطالب بیشتر:
استفاده از JOIN و ساخت پرس و جوی ترکیبی در MySQL
آموزش MySQL، سیستم مدیریت پایگاه داده
توابع تجمیعی (Aggregate Functions) در MySQL
به روز رسانی ردیف ها در MySQL با UPDATE
انتخاب ردیف ها با دستور SELECT در MySQL
دیدگاه
more ۷۷ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
بهنام
۱۹:۴۷ ۱۳۹۲/۱۲/۱۵
اصلا من همچین کدی رو تو صفحه مینویسم
mysql_connect('localhost','root','');
mysql_select_db('new');
mysql_query("INSERT INTO captcha(code) VALUES('♥♥♥')");
که با ریفرش شدن صفحه اینسرت بشه در پایگاه داده
ولی به صورت کد اینسرت میشه مشکل از چیه؟
ذخیره به صورت کد به خودی خود مشکلی ایجاد نمی کند، هنگام بازیابی، اطلاعات به شکل صحیح قابل نمایش هستند، با این حال اگر می خواهید موارد به همان شکل نوشته شده ذخیره شوند مراحل زیر را انجام دهید:
- از متاتگ زیر در تمام صفحات استفاده کنید:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- علاوه بر دیتابیس، جداول و ستون ها را نیز با یونیکد
utf8_persian_ci
بسازید.
- پس از تابع اتصال با دیتابیس، پرس و جوی زیر را هم اجرا کنید:
SET NAMES 'utf8'
نکته: راه حل برای کاراکتر ♥ تست شده و مشکلی ندارد!
بهنام
۰۲:۱۵ ۱۳۹۲/۱۲/۱۵
سلام
من تو پایگاه داده متن اینسرت می کنم
مشکلی نداره فقط کاراکتر هایی مانند
>
<
;
&

و... رو که از طریق فیلد که از طرف مرورگر به پایگاه داده اینسرت میشه به صورت کد تو پایگاه داده اینسرت میشه یا به عبارتی دیگه کدینگ میشه مشکل از چیه؟
یو تی اف 8 و یو تی اف 8 ژنرال سی ای و ENGINE = MyIsam هم گذاشتم بازم مشکل بر طرف نشد
به نظر کد شدن این کاراکترها قبل از ذخیره شدن در دیتابیس اتفاق می افتد، به فرض اگر از ویرایشگرهای HTML برای ارسال و درج مطلب استفاده می کنید، معمولا این برنامه ها از سیستم تبدیل کاراکترهای خاص به معادل کد شده آنها استفاده می کنند (در سورس صفحه این کار انجام می شود و در ظاهر همان علامت را می بینید)، باید ببینید از هنگام نوشتن کاراکتر تا ذخیره آن چه توابع یا برنامه هایی بر روی داده ها تاثیر می گذارند.
مهدی روستایی
۱۲:۳۱ ۱۳۹۲/۱۲/۰۲
سلام خسته نباشید
$matn="<style>p.green{color:green}</style> ";
وقتی میخوام تو دیتابیس ذخیره کنم میگه ورژن دیتابیست رو چک کن نمیشه
میشه بگید چه کار کنم؟ ممنون
هر چند متن دقیق خطا برای بررسی لازم است، اما به نظر بدون ایمن سازی مقادیر، قصد ذخیره کردن آنها را دارید و خطای Syntax دریافت می کنید، برای حل مشکل پیش از ذخیره داده ها، با توابعی مانند
mysqli_real_escape_string
آنها را ایمن سازی کنید.
داود
۱۱:۱۹ ۱۳۹۲/۱۱/۲۹
سلام خسته نباشید.
ممنون از آموزش های خوبتون.
چطور میشه کلیدهای اصلی دو تا جدول رو در داخل یک جدول دیگه ثبت کرد برای مثال من دو تا فرم دارم یکیش لیست کاربرهام رو نشون میده به صورت کشویی و یکی دیگش لیست فایل ها رو نشون میده به صورت چک باکس حالا میخوام زمانی که مدیر اسم کاربر و فایل های مورد نظر رو که انتخاب کرد با زدن دکمه ثبت id کاربر و id فایل ها تو یه جدول دیگه ثبت بشه و زمانی که کاربر وارد اکانتش شد فقط فایل هایی که بهش اختصاص داده شده رو ببینه.
ممنون میشم اگه کمکم کنید
می توانید مقادیر ID و سایر اطلاعات مورد نظر را از پایگاه داده استخراج کرده و در قسمت value فیلدها قرار دهید و سپس پس از ارسال فرم از طریق متد POST مقادیر را در دیتابیس و به نحو دلخواه ذخیره نمائید.
مسعود
۰۳:۳۲ ۱۳۹۲/۱۱/۲۹
سلام من یک مشکل دارم طبق این دستور مقادیر باید ارسال بشه و ذخیره شود اما مقادیر اصلا تغییری نمیکنند ثابت هستند
if (!empty( $_POST['format'] )) {
$update = array( 'dual' => $_POST['dual'], 'format' => $_POST['format'], 'num' => $_POST['num'] );
$where = array( 'setting' => 'options' );
update_query( $table, $update, $where );
}
$result = mysql_query('SELECT * FROM mod_pars_jdate WHERE setting = "options"');
$data = mysql_fetch_array($result);
$format = $data[format];
$timezone = $data[timezone];
$num = $data[num];
$dual = $data[dual];
$parslocalkey = $data[localkey];
کد باید در برنامه و به صورت زنده تست شود، با نمونه کدی که درج کرده اید مشکل قابل تشخیص نیست، ممکن است از تابع update_query یا حتی از عدم ست شدن فیلد format باشد.
نکته: اکستنشن MySQL قدیمی و منسوخ شده است، توصیه می شود از MySQLi یا PDO استفاده کنید.
۱۳:۰۵ ۱۳۹۲/۱۰/۰۱
من یه فرم ثبت مشخصات مثل ایمیل و شماره موبایل و ارسال عکس دارم فرم رو درست کردم با اکشن register.php حالا وقتی اطلاعات را درج می کنم یه صفحه سفید میاره بدون هیچگونه خطایی منتها چیزی هم ثبت نمیشه من عکس رو بطور جداگانه در پوشه images میخوام ثبت کنم لطفا راهنمایی کنید یا ایمیل بزنین
<?php
if(@$_POST['Submit']){
$con=@mysqli_connect("216.128.80.23:2082","bazaruzi_b","B@A*","bazaruzi_ba");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: ". mysqli_connect_error();
}
$a=$_POST['type'];
$b=$_POST['set'];
$c=$_POST['name'];
$d=$_POST['email'];
$e=$_POST['mobile'];
$f=$_POST['telephon'];
$s=$_POST['adress'];
$g=$_POST['prix'];
$h=$_POST['date'];
$y=$_POST['code'];
$q=$_POST['description'];
$l=$_POST['image'];

//آپلود فايل در صفحه طبق فرم اسم و پسوند و سايزو مسير ذخيره سازي
If( isset($_FILES['image']) && $_FILES['image']['error'] == 0 && $_FILES['image']['type'] == ('image/gif' or 'image/jpeg') && $_FILES['image']['size'] <= 200000 )
{
Move_uploaded_file($_FILES['image']['tmp_name'], 'images/'.$_FILES['image']['images']);
}

//و حالا يک فايل براي دريافت اطلاعات فرم و ارسال انها به سرور ايجاد ميکنيم و کدهاي زير را درون ان قرار ميدهيم
$ins="INSERT INTO db (type, set, name, email, mobile, telephon, adress, prix, date, code, description, image)
VALUES('$a','$b','$c','$d','$e','$f','$s','$g','$h','$y','$q','$l')";
$saved=mysql_query($ins );
if($saved){
echo "اطلاعات با موفقيت ذخيره شد";
}
else
{
echo "ذخيره ي اطلاعات موفقيت آميز نبود";
}
mysqli_close($con);
}
?>
به نظر کدهای شما خطای Syntax دارد (کد بالا اصلاح شد).
هدایت
۱۷:۵۲ ۱۳۹۲/۰۹/۲۹
با سلام خدمت اساتید عزیز
من می خوام یه کد کپچای مثل کد امنیتی شما ایجاد کنم که این کد با رفرش کردن صحفه تغییر کنه بعد داخل تکس باکس کد رو بنویسیم اگه درست نبود پیغام بده در غیر این صورت وارد مکان مورد نظر بشه البته کد داخل دیتابیس ذخیره و به صورت عکس باشه
با تشکر
مورد مد نظر شما نیاز به آموزشی مفصل و جداگانه دارد، نمونه آموزشی در سایت وجود دارد، لطفا عبارت "فرم تماس" را در قسمت جستجو وارد کنید، بخشی از این مطلب به کد امنیتی اختصاص دارد (برای حالت تصویری باید در وب جستجو کنید، نیاز به استفاده از کتابخانه GD در PHP است).
mady
۱۲:۳۸ ۱۳۹۲/۰۷/۲۸
سلام ببخشید من یک فرم ساده تماس با ما دارم که سه تا فیلد نام ، ایمیل و پیام داره این مشکل را دارم که حتی با اینکه شرط عدم خالی بودن فیلدها را برای آن تعریف کردم وقتی یک بار فرم را پر و ارسال می کنم اگر دوباره صفحه اکشن فرم را رفرش کنم دوباره اطلاعات روی پایگاه داده تکرار می شه آیا راه حلی برای این است که با رفرش کردن اطلاعاتی که قبلا وارد کردیم و ذخیره نمودیم دوباره در پایگاه داده ذخیره نشه
این رفتار به مرورگر ارتباط دارد و خیلی قابل تغییر نیست، اما برای رفع مشکل ذخیره سازی دوباره، راه حل هایی وجود دارد، به فرض می توانید یک فیلد input از نوع hidden در فرم خود داشته باشید که مقادیر value آن، شماره id آخرین ردیف موجود در دیتابیس باشد (شماره id را قبلا و در هنگام ارسال خروجی SELECT و به عنوان value چاپ کنید)، چون در هنگام ارسال مجدد، این فیلد نیز ارسال می شود، قبل از ذخیره سازی، خالی بودن یا بودن این شماره id را بررسی کنید و اگر خالی بود مقادیر را INSERT (یا UPDATE) کنید.
اصغر
۰۹:۵۹ ۱۳۹۲/۰۷/۱۹
سلام , من یک فرم دارم که دو text box هست یکی برای ورود کلمه و دیگری برای معنی آن که برای ذخیره اطلاعات آن مشکلی ندارم ولی در صفحه یک دکمه گذاشتم که با جی کوئری به فرم دو text box مثل قبل اضافه می کند و کاربر با زدن آن می تواند تعداد زیادی input ایجاد کنه حالا چه طور این اطلاعات را باید ذخیره کرد
در اینگونه موارد نیاز هست که لینکی به صفحه مورد نظر قرار دهید تا بتوان بصورت آنلاین سورس کدها را بررسی و پاسخ دقیق به سوال داد، با اطلاعات موجود تنها می توان گفت که باید یک دکمه برای ارسال فرم (و در نتیجه فیلدهای زیرمجموعه آن) داشته باشید و در سمت سرور بر اساس نام فیلد ها، مقادیر را با متد POST دریافت کنید، این نام می تواند به صورت یک آرایه (فیلد multiple) نیز باشد که خود مبحث جداگانه دارد.
بهزاد
۱۹:۱۶ ۱۳۹۲/۰۷/۱۷
سلام
داداش من وقتی اطلاعاتم رو تو پایگاه داده ذخیره میکنم اگر فارسی باشه بصورت علامت سوال ذخیره میشه؟؟؟؟؟؟
چکار کنم اینجوری نشه؟؟؟؟؟؟؟؟
اگر میشه جواب رو به ایمیلم بفرست
ممنونتم
برای پشتیبانی کامل MySQL از زبان فارسی، مراحل زیر را انجام دهید:
- از متاتگ زیر در تمام صفحات استفاده کنید:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- دیتابیس و جداول و ستون ها را با یونیکد
utf8_persian_ci
بسازید.
- پس از اتصال با دیتابیس، پرس و جوی زیر را هم اجرا کنید:
SET NAMES 'utf8'
- اگر مشکل همچنان حل نشد، فایل های خود را با ویرایشگر ++Notepad باز کرده و سپس از قسمت Encoding گزینه Encoding UTF-8 without BOM را انتخاب و فایل خود را مجددا ذخیره نمائید.
ali
۲۱:۰۰ ۱۳۹۲/۰۶/۲۷
سلام. ببخشید من اگه خواستم وجود یک عبارتی رو داخل ستون های یک جدول بررسی کنم، باید از چه تابعی استفاده کنم؟
مثلا چند تا ستون دارم که یکیش ali akbari هست و میخوام وجود همچین عبارتی رو جستجو کنم؟
با تشکر
کافی است یک پرس و جو با SELECT بنویسید و با استفاده از WHERE ستون هایی که مقادیر آنها برابر عبارت مورد نظر هست را انتخاب کنید، سپس با استفاده از تابع COUNT یا توابعی مانند mysqli_num_rows می توانید تعداد ردیف های برگردانده شده را بدست آورید (اگر از صفر بیشتر بود، یعنی عبارت وجود دارد).
sahar
۱۲:۴۲ ۱۳۹۲/۰۶/۲۶
با عرض سلام و عرض ادب
در یک صفخه جدولی برای کاربر ایجاد کردم تا یکسری اطلاعات رو وارد کنند و این اطلاعات در جدولی که در پایگاه داده تعریف کردم ذخیره بشن ناگفته نمونه که این اطلاعات همگی از نوع عدد هستن اما وقتی این اعداد رو وارد میکنم توی پایگاه داده به جای همه اعداد فقط عدد 0 ذخیره میشه مشکلم کجاست؟
ممنون
بدون دیدن و بررسی سورس کدها نمی توان دقیقا گفت مشکل از کجاست، اما احتمال وجود دارد که پرس و جوی مربوط به INSERT به درستی نوشته نشده باشد و در واقع مقادیر در دیتابیس ثبت نکند، باید با روش های خطایابی و رفع عیب در PHP آشنا باشید تا بتوانید مشکل را رفع کنید.
۰۰:۲۴ ۱۳۹۲/۰۶/۱۷
با تشکر از زحمت شما دوست گرامی من مرحله های مقدماتی رو تا جای ممکن رد کردم مشکلم بر طرف شد خیلی ممنون از پاسخگوییتون
یه امکانی درست کردم خودمم باورم نمیشه خیلی عالی شده فقط یه مشکل داره وقتی که کاربری فرم input را خالی بگذاره و ارسال رو بزنه تمام پایگاه داده بهم میریزه میخوام وقتی input را خالی گذاشت ارسال رو زد این پیام نمایش داده بشه
<script type='text/javascript'>alert('لطفا فیلد مورد نظر را خالی نگذارید');</script>
لطفا کمک کنید خواهش میکنم
اعتبارسنجی سمت کاربر (JavaScript) شیوه قابل اطمینانی نیست، باید در کنار اعتبار سنجی سمت کاربر از اعتبارسنجی سمت سرور (PHP) نیز استفاده کنید.
برای کسب اطلاعات بیشتر در این خصوص عبارت "اعتبار سنجی" را در قسمت جستجو وارد کنید.
۲۱:۰۴ ۱۳۹۲/۰۶/۱۶
سلام دوست گرامی خسته نباشید
من همین دستوراتی که گفتین عمل کردم موفق هم شدم اینم کد هاش
mysqli_query($con, "INSERT INTO db1_etchat_user(etchat_username, etchat_userpw, etchat_userprivilegien) VALUES('amirhossein', '12345', 'admin')") or die('مدیر جدید ساخته نشد');
و با هر رفرش دادن یک کاربر جدید به نام امیرحسین ساخته میشه مثلا 10 بار رفرش کنی 10 بار ساخته میشه ولی اگر بخوایم شرطی تعیین کنیم به این صروت:
اگر کاربر amirhossein وجود نداشت آن را نساز ولی اگر وجود داشت تلاش برای ایجاد آن
چگونه ممکن است؟ با تشکر از لطف شما
ظاهرا بدون گذراندن مباحث مقدماتی MySQL وارد مرحله کدنویسی کاربردی شده اید که روش صحیحی نیست، این شیوه تنها باعث ایجاد سوالات و مشکلاتی می شود که پاسخ به آنها نیاز به طرح مباحث مقدماتی دارد و باید در جای خود آموزش داده شوند.
تنها می توانیم به این نکته اشاره کنیم که تابعی وجود دارد به نام mysqli_num_rows که می تواند تعداد ردیف های یک پرس و جو را برگرداند، لذا می توان پرس و جویی برای بررسی وجود یا عدم وجود مقادیر در دیتابیس نوشت و تعداد ردیف های برگردانده شده را با تابع به دست آورد، اگر صفر بود پس کاربر مورد نظر وجود ندارد و اگر بزرگتر از صفر بود، کاربر یا کاربران مشابه وجود دارد.
یحیی
۱۸:۲۲ ۱۳۹۲/۰۶/۱۶
با سلام
من میخواستم یک رشته به صورت
100a10455
را در یک فیلد ذخیره کنم . اما ذخیره نمیشه ولی اگه حرف به عدد تبدیل شود ذخیره می شود. نوع فیلد
varchar(12)
است.
VARCHAR با طول 12 کاراکتر به این معنی است که می توانید 12 حرف یا عدد انگلیسی (12 بایت) را در آن ذخیره کنید، حال اینکه عنوان کردید رشته مورد نظر درج نمی شود به طور طبیعی نباید این گونه باشد، باید دید مشکل از چه چیزهای دیگری است (نیاز به بررسی ساختار دیتابیس دارد).
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
5 × 2
20 × 20
=