ویرایش اطلاعات یک جدول در PHP
ویرایش اطلاعات یک جدول با استفاده از MySQLi و PDO
دستور UPDATE برای ویرایش اطلاعات یک جدول استفاده می شود.
نحوه استفاده:
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
نکته: اگر در دستور UPDATE، قسمت WHERE را در نظر نگیرید، کلیه ستونهایی که مشخص کرده اید، ویرایش می شوند، در حقیقت قسمت WHERE مشخص می کند که چه ردیف هایی باید ویرایش شوند.
برای کسب اطلاعات بیشتر در مورد SQL، به لینک روبرو مراجعه فرمایید: آموزش SQL-مقدمه
به جدول "MyGuests" که در فصل های قبلی از آن استفاده شده است توجه کنید:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | John | Doe | این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید | 2014-10-22 14:26:15 |
2 | Mary | Moe | این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید | 2014-10-23 10:22:30 |
در مثال زیر، رکوردی که id آن برابر با 2 است در جدول "MyGuests" ویرایش خواهد شد:
مثال (MySQLi Object-oriented)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// ایجاد ارتباط
$conn = new mysqli($servername, $username, $password, $dbname);
// اطمینان از صحت ارتباط
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
?>
مثال(MySQLi Procedural)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// ایجاد ارتباط
$conn = mysqli_connect($servername, $username, $password, $dbname);
// اطمینان از صحت ارتباط
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
مثال(PDO)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// تنظیم حالت برخورد با خطاها
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// تنظیم کوئری ویرایش
$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
// دستورات آماده
$stmt = $conn->prepare($sql);
// اجرای کوئری
$stmt->execute();
// چاپ پیغام موفقیت آمیز بودن عملیات ویرایش
echo $stmt->rowCount() . " records UPDATED successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
نتیجه کار بعد از ویرایش رکورد:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | John | Doe | این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید | 2014-10-22 14:26:15 |
2 | Mary | Doe | این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید | 2014-10-23 10:22:30 |
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 24198
دیدگاهها
سلام! یک جدول داریم و میخوام هر وقت خواستم اطلاعاتشو آپدیت کنم!
یک فرم آپدیت درست کردم! منتها یک مشکلی که داره باید تمام فیلدهاشو پر کنم تا آپدیت انجام بشه! اگه مثلا بخوام فقط یک موردشو تغییر بدم و بقیه فیلدها خالی باشه نمیشه! چکار کنم؟
سلام، مراحل زیر رو بترتیب انجام بدید:
1- در پایگاه داده جدول مورد نظر را در حالت ویرایش قرار بدید و فیلدهایی که می تونند خالی باشند را با مقدار Allow Null تنظیم کنید.
2- در صفحه HTML مورد نظر برای فیلدهایی که می توانند خالی باشند حواستون باشه که مقدار required تنظیم نشده باشد.
3- سمت PHP حواستون باشه که نیازی نیست چک کنید که فیلدهای مورد نظر از نظر خالی با پر بودن بررسی بشند.
برای آشنایی بیشتر با خصوصیت required و دیگر خصوصیات جدید در HTML5 به لینک زیر مراجعه فرمایید:
beyamooz.com/html5/623-%D8%AE%D8%B5%D9%88%D8%B5%DB%8C%D8%AA-%D9%87%D8%A7%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF-%D8%AF%D8%B1-html5
چرا اشتباه است
WHERE username='ali' & username='reza'
اول بگید هدفتون از & چی هست؟
اگر AND هست که باید && باشه، و در ثانی در MySQL باید از کلمهی کلیدی AND استفاده کنید.
از نظر مفهومی هم برای درست بودن یک عبارت شرطی AND باید هر دو طرف عبارت AND ، مقدار درستی رو برگردونن.
در شرط بالا یوزرنیم نمیتونه همزمان هم علی باشه و هم رضا! برای همین غلط در میاد.
البته توضیحات بالا با این معیار داده شده است که منظور از شرط AND بوده است.