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

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 مطالب بیشتر:
آموزش MySQL، سیستم مدیریت پایگاه داده
استفاده از WHERE در پرس و جوی MySQL
محدودسازی، گروه بندی و مرتب سازی نتایج در MySQL
توابع تجمیعی (Aggregate Functions) در MySQL
نحوه ذخیره کردن اطلاعات با دستور INSERT در MySQL
دیدگاه
more ۷۷ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
sahar1999
۱۸:۱۳ ۱۳۹۹/۱۰/۰۱
سلام وقت بخیر چطور میتونم در برنامه نویسی سی شارپ هنگام ایجاد پایگاه داده ی MySql نام پایگاه داده رو از txetbox دریافت کنم؟
متاسفانه در زمینه #C فعالیتی نداریم اما تا آنجا که می دانیم می توانید یک متغیر در کدها تعریف و در متد مربوط به رویداد کلیک مقادیر را از فیلد دریافت کنید، در نهایت متغیر را در متد مربوط به ایجاد پایگاه داده جاگذاری و متد را فراخوانی نمائید، شاید این مطلب کمک کند:
http://csharp.net-informations.com/gui/cs-textbox.htm
نیلوفر
۱۲:۵۳ ۱۳۹۹/۰۴/۲۳
سلام. من تازه کار هستم و توی سایتی که طراحی کردم یه سرچ باکس گذاشتم. ارتباط با پایگاه داده هم داره و نتایج رو نشون میده. فقط نمی دونم چطوری میتونم وقتی نمایش نشون داده شد لینک به همون صفحه بشه انجام داد. لینک ها رو چطور توی جدول sql بنویسم و توی صفحه چجوری فراخونیش کنم؟ سایت با php و html هست
معمولا مرحله ایجاد لینک پس از استخراج اطلاعات خام (شماره id، عنوان مطلب و...) از دیتابیس و در کدهای PHP انجام می شود، یعنی اول باید ببینید لینک های شما چه ساختاری دارند و بعد اطلاعات مورد نیاز را از دیتابیس استخراج و در کدهای PHP با برنامه نویسی خروجی HTML مورد نظرتان را ایجاد کنید، اگر CMS شما لینک مطالب را از قبل ایجاد و در دیتابیس ذخیره می کند می توانید متناسب با نتیجه به دست آمده از جستجو لینک های مرتبط با آن را استخراج و در PHP به خروجی HTML (تگ a) تبدیل کنید، اینکه چه روشی را انتخاب کنید بستگی به رفتار سیستم مدیریت سایتتان دارد.
نادیا
۲۲:۳۲ ۱۳۹۸/۱۰/۰۱
سلام وقت بخیر من میخوام در HTML جدولی طراحی کنم که ستون های جدولم که در داخل دیتابیس است رو داخلش قرار بدم اما نمیتونم و البته من تازه شروع کردم به یادگیری روش PDO الان بین راه گیر کردم که چطوری باید این جدول رو ایجاد کنم. و اگر راهنمایی کنید بی نهایت ممنون میشم
آموزش PDO یک دوره مجزا است و نمی توانیم در یک پاسخ تمام مباحث را توضیح دهیم، لطفا سوالات را به صورت موردی مطرح کنید (در کدام بخش مشکل دارید؟) تا امکان راهنمایی وجود داشته باشد، سری آموزش های حاضر نیز بر مبنای اکستنشن MySQLi است که در صورت تمایل می توانید مطالعه کنید (در حالت شی گرا بین دو اکستنشن شباهت هایی وجود دارد).
یزدخواستی
۱۷:۳۲ ۱۳۹۸/۰۲/۲۵
سلام با تشکر از توضیحات خوب و مفیدتان اگر ممکنه قطعه برنامه صحیح رو بگذارید بی نهایت سپاسگزارم.
این ساختار را باید خودتان پیاده سازی کنید، کدهای PHP را در یک فایل جداگانه قرار داده و درخواست Ajax را به این فایل ارسال و از نتیجه در جاوا اسکریپت استفاده کنید.
یزدخواستی
۱۵:۴۴ ۱۳۹۸/۰۲/۲۵
سلام این هم قطعه برنامه:
<!DOCTYPE HTML>
<html>
<head>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script defer src="//cdn.rawgit.com/chrisveness/geodesy/v1.1.2/latlon-spherical.js"></script>


<script>
function initialize() {
setInterval(function(){
<?php
$con=mysql_connect('localhost','seebsork_web','*********');
mysql_select_db('seebsork_website',$con);
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER_SET utf8");
$query="SELECT * FROM `1398_1000` ORDER BY id DESC LIMIT 1 ";
$select=mysql_query($query);
while($row=mysql_fetch_array($select)){
$id=$row['id'];
}
mysql_close($con);
?>
var id = '<?php echo $id;?>';
alert(id);
}, 3000);
};
google.maps.event.addDomListener(window, 'load', initialize);

</script>
<script async defer
</script>

</head>
<body>
<div id="map-canvas"></div>
</body>
</html>
PHP زبان سمت سرور است و با هر فراخوانی صفحه یک بار اجرا و خروجی ارسال می شود اما جاوا اسکریپت در سمت مرورگر کاربر است و می توانیم به تعداد دلخواه توابع را فراخوانی کنیم، این ترکیب فعلی صرفا در اولین اجرای کدها مقداردهی می شود و در دورهای بعدی مجددا مقدار خروجی داده شده قبلی وجود دارد، برای رفع مشکل باید در هر دور جدید مقدار با Ajax از سمت سرور (کدهای PHP) دریافت و در جاوا اسکریپت استفاده شود (رجوع به آموزش های Ajax).
یزدخواستی
۱۱:۵۰ ۱۳۹۸/۰۲/۲۵
سلام مشکلی دارم : قطعه برنامه ای با php نوشتم که در آن حلقه بی پایانی است که درون آن دیتابیس باز و id آخرین رکورد جدولم خوانده و نمایش داده می شود. از طرف دیگر توسط برنامه دیگری جدول در حال بروز رسانی است . مشکل اینجاست که برنامه تا زمانی که مجددا اجرا نشود تغییرات جدید را نمایش نمیدهد لطف کنید راهنمائی کنید تشکر. (در جدول id را outoincrement تعریف کرده ام )
بدون دیدن سورس کدها و امکان تست برنامه نمی توانیم دقیق راهنمایی کنیم، با توجه به شرح سوال باید نتیجه دریافتی از MySQL در هر دور حلقه تازه سازی شود و برای این کار لازم است ساختار برنامه به نحوی نوشته شود که دستور SELECT برای هر دور به صورت مجزا اجرا و متغیرها مجددا با مقادیر جدید به روز شوند، برای این کار می توانید یک تابع بنویسید که به فرض آخرین ID را از دیتابیس دریافت کند، این تابع را در حلقه قرار دهید به نحوی که با هر دور یک بار فراخوانی و با مقدار جدید به روز شود، قسمت اتصال و پایان اتصال باید خارج از حلقه باشد اما قسمت دریافت اطلاعات باید در هر دور حلقه یک بار اجرا شود.
هادی
۰۹:۳۴ ۱۳۹۷/۰۸/۲۵
سلام. باتشکر. این کد رو من نوشتم . کدها اجرا میشن ولی تو دیتابیس نمیرن . میتونین کمکم کنین ؟ ممنون
<?php session_start(); ?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<?php
include "connect.php";
$name="";
$price=0;
$email=$_SESSION["email"];
$count=0;
$done=false;

$id=$_GET["id"];
$query="SELECT * FROM product WHERE id=:id";
$result=$connect->prepare($query);
$result->bindparam(":id",$id);
$result->execute();
while($row=$result->fetch(PDO::FETCH_ASSOC)){
$name=$row["name"];
$price=$row["price"];
}
$sql="SELECT * FROM basket WHERE email=:email and name=:name and done=:done";
$result=$connect->prepare($sql);
$result->bindparam(":email",$email);
$result->bindparam(":name",$name);
$result->bindparam(":done",$done);
$result->execute();
while($row=$result->fetch(PDO::FETCH_ASSOC)){
if(!empty($row["count"])){
$count=$row["count"];
}else{
$count=0;
}
}
if($count>0){
$upquery="UPDATE basket SET count=:count";
$result=$connect->prepare($upquery);
$result->bindparam(":count",$count++);
$result->execute();
}else{
$count2=1;
$reduction=0;
$inquery="INSERT INTO basket (name,email,price,count,reduction) VALUES(:name,:email,:price,:count,:reduction)";
$result=$connect->prepare($inquery);
$result->bindparam(":name",$name);
$result->bindparam(":email",$email);
$result->bindparam(":price",$price);
$result->bindparam(":count",$count2);
$result->bindparam(":reduction",$reduction);
$result->execute();
}
?>
</body>
</html>
به نظر مشکل از استفاده مستقیم کلمات محفوظ (مانند name و count) در پرس و جوهاست، برای رفع ایراد نام ستون ها را با backquote درج کنید (یا نام دیگری برای ستون انتخاب نمائید) و عبارات bind را نیز تغییر دهید، به فرض:
INSERT INTO basket (`name`, `email`, `price`, `count`, `reduction`) VALUES(:name_col, :email, :price, :count_col, :reduction)
سمیه
۰۷:۵۷ ۱۳۹۷/۰۸/۱۵
با سلام و احترام
پروژه من OMR سیستم است و من فرم رو در HTML طراحی کردم و حالا میخوام همون فرم در mysql ذخیره بشه و از سوالات چهارگزینه درستش در تیبل ذخیره بشه با استفاده از php
خیلی ممنون میشم اگر جواب بدهید.
سوالتان کلی است! ذخیره و نمایش اطلاعات در وب شامل دو بخش سمت کاربر (مرورگر) و سمت سرور است، برای حالت اول باید از تگ form در HTML و JavaScript جهت ایجاد قابلیت های مد نظر استفاده کنیم و در سمت سرور نیاز به برنامه نویسی PHP و ارتباط با MySQL است که خود نیاز به آموزش های مقدماتی جداگانه دارد، لطفا به صورت موردی و ترجیحا با اسکرین شات یا نمونه کد مشکل را مطرح کنید تا امکان راهنمایی بیشتر میسر باشد‌.
محمود
۱۰:۱۷ ۱۳۹۷/۰۶/۱۱
سلام و روز بخیر.
قبلن بگم که از کمک های بسیاری که به ما میکنید بسیار متشکر و قدر دانیم. من با این کد
contenteditable="true"
که پیدا کردم یک قسمت از صفحه را اجازه می دهم که کاربر ویرایش کند. البته داخل div با آی دی مشخص. این هم کدهای صفحه ویرایشم.
حذف شد
مشکل من اینجا است که می خواهم کدهای صفحه ویرایشم یا کدهای php طوری اصلاح شوند که وقتی کاربر متن و یا جدول و .. را که ویرایش کرد عینن در صفحه دیگر ترجیحن پروفایل خودش و اگر نشد در صفحه ای با آدرس مشخص مانند
http://localhost/www/%d8%a8%d8%b1%da%af%d9%87-%d8%b0%d8%ae%db%8c%d8%b1%d9%87-%d8%aa%d8%ba%db%8c%db%8c%d8%b1%d8%a7%d8%aa
ذخیره شود.
لطفن کمک کنید.
لطفا آموزش های مربوط به کار با PHP و MySQL را از مقدمات مطالعه کنید، مراحل اتصال به دیتابیس و استفاده از دستور INSERT در کدهای شما دیده نمی شود!
نکته 1: با توجه به پیشرفت وب در سالیان اخیر بهتر است از HTML5 به جای نسخه 4 و اکستنشن MySQLi به جای MySQL استفاده کنید.
نکته 2: برنامه نویسی دانش پلکانی و مهارتی حرفه ای است، یعنی باید حتما و حتما از دانستنی های مقدماتی شروع شود، خیلی از مشکلات مطرح شده در صورت مطالعه دقیق و تمرین از مقدمات مرتفع خواهند شد.
علی
۱۶:۲۶ ۱۳۹۷/۰۵/۱۹
دمت گررررم
saeid
۱۲:۵۸ ۱۳۹۷/۰۵/۱۹
سلام
خسته نباشید
میخاستم یه جستجو کنم که مثلا اگر پایگاه داده مورد نظر من توی پی اچ پی مای ادمین نبود یک پایگاه جدید با مشخصات مربوطه ایجاد بشه و اگر هم که بود عملیات مورد نظرم انجام بشه کمک لطفا اگه میشه برام ایمیل کنید که چیکار باید بکنم
در صورت استفاده از MySQLi نمونه کد زیر برای بررسی وجود یا عدم وجود دیتابیس کاربرد دارد:
$db = new mysqli('localhost', $username, $password);
$database = "dbname";

$query = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ?";
$stmt = $db->prepare($query);
$stmt->bind_param('s', $database);
$stmt->execute();
$stmt->bind_result($data);

if($stmt->fetch()){
echo "Database exists!";
} else{
echo "Database does not exist!";
}

$stmt->close();
همچنین می توانید یکی از پرس و جوهای زیر را قبل از ساخت دیتابیس اجرا کنید و اگر تعداد ردیف های پیدا شده غیر از صفر برگردانده شد، یعنی دیتابیس از قبل وجود دارد:
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'dbname'
یا
SHOW DATABASES LIKE 'dbname';
elahe
۱۲:۵۸ ۱۳۹۷/۰۳/۱۳
سلام. من از این دستور برای درج اطلاعات فرم ثبت نام در پایگاه داده استفاده کردم ولی به rowCount خطا میده. دلیلش چیه؟
<?php
if(isset($_POST["btnsave"]))
{

$name=$_POST["name"];
$family=$_POST["family"];
$father=$_POST["father"];
$user=$_POST["user"];
$pass=$_POST["pass"];
$birth=$_POST["birth"];
$phone=$_POST["phone"];
$email=$_POST["email"];
$address=$_POST["address"];

$sql="INSERT INTO form(`name`,`family`,`father`,`username`,`password`,`birth`,`phone`,`email`,`address`) VALUES('$name','$family','$father','$user','$pass' ,'$birth','$phone','$email','$address')";

$statement=$connection->query($sql);
$count=$statement->rowCount();
if($count>0)
echo "INSERT DONE!";
else
echo "ERROR";
}
?>
امکان خطایابی با توجه به کدهای درج شده میسر نیست، بخش اصلی کدها (اکستشن مورد استفاده) در جای دیگری از برنامه است و صرفا در این قسمت فراخوانی شده است! همچنین ممکن است ایرادی در پرس و جوی INSERT وجود داشته باشد، در هر حال باید با تست و خطایابی مشکل مشخص شود.
محمد
۱۵:۴۸ ۱۳۹۵/۱۲/۰۷
سلام. من این کد رو وارد کردم اما بخش INSERT INTO و VALUE آن غیرفعال است. من مبتدی هستم و تازه دارم PHP یاد میگیرم لطفا راهنماییم کنید. با تشکر.
کد:
<?php 
require_once('connect.php');
if (isset($_POST) and !empty ($_POST)){
$username = $_POST ['username'];
$email = $_POST ['email'];
$password = $_POST ['password'];
$sql = "INSERT INTO 'usermanagement' (username, email, password) VALUES ('$username, $email, $password')";
$result = mysqli_query ($connection , $sql);
if ($result){
echo "Succesful Registeration";
} else "Failed Registeration";
}
?>
هرچند دقیقا توضیح نداده اید که منظور از "غیرفعال" چیست، اما اشکال می تواند از موارد مختلف باشد، به طور مثال ممکن است اطلاعات اتصال به پایگاه داده صحیح نباشد، یا اینکه هیچ پارامتری با متد POST ارسال نشده باشد (در کدها شرطی وجود دارد که اجرای پرس و جو را مشروط به وجود متد POST و خالی نبودن آن کرده است)، لذا معمولا این کد باید زمانی اجرا شود که اطلاعاتی از یک فرم HTML به آن ارسال شده باشد.
۱۷:۳۶ ۱۳۹۵/۱۱/۰۹
با سلام . وقتکه متن طولانی مثلا 70 صفحه را در فیلد text ذخیره می کنم در حدود 20 ذخیره می شود بقیه ذخیره نمی شود مشکل چسیت این را هم از طریق php و هم از طریقphp my admin امتحان کردم این مشکل وجود دارد مشکل چیست لطفا فوری جواب بدهید از همکاری شما متشکرم
فیلدهای MySQL بر اساس Data Type خود دارای محدودیت کاراکتر (byte) هستند:
https://dev.mysql.com/doc/refman/5.7/en/storage-requirements.html
لذا برای متن های طولانی بهتر است از MEDIUMTEXT یا LONGTEXT استفاده کنید!
ali asghar
۱۱:۴۵ ۱۳۹۵/۱۰/۲۱
$pass_hash=md5($pass);
$query= mysql_query ("insert into news (name,pass,mail) values('$name','$pass_hash','$mail')");
if($query)
{
echo "ثبت نام تکمیل شد";
}
else
{
echo"در فرایند ثبت نام مشکلی پیش آمد";
}
جدول دارای 4 ستون id/name/pass/mail
خطا: ثبت نام تکمیل نشد
لطفا قسمت زیر را به کد خود اضافه کنید و متن خطای دریافتی را ارسال نمائید تا امکان راهنمایی دقیق تر فراهم باشد:
or die(mysql_error()); 
نکته: اکستنشن MySQL قدیمی و منسوخ شده است، توصیه می شود از MySQLi یا PDO استفاده کنید.
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
7 × 3
20 × 20
=