ویرایش اطلاعات یک جدول با استفاده از 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 | 2014-10-22 14:26:15 | |
2 | Mary | Moe | 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 | 2014-10-22 14:26:15 | |
2 | Mary | Doe | 2014-10-23 10:22:30 |
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
یک فرم آپدیت درست کردم! منتها یک مشکلی که داره باید تمام فیلدهاشو پر کنم تا آپدیت انجام بشه! اگه مثلا بخوام فقط یک موردشو تغییر بدم و بقیه فیلدها خالی باشه نمیشه! چکار کنم؟
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 بوده است.