با عرض سلام خدمت کاربران محترم سایت پی وی لرن. در این جلسه قصد داریم تا نحوه کار با دستور UPDATE در MySQL یا بروزرسانی اطلاعات جدول در MySQL را فرا بگیریم.
دستور UPDATE برای بروز رسانی رکورد های موجود در جدول استفاده می شود.
ساختار دستور:
1 2 3 | UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value |
همانطور که در جلسه قبل نیز گفتیم، دستور WHERE برای انتخاب رکورد های مد نظرمان انتخاب کی می شوند و اگر از این دستور استفاده نکنیم، تمام رکورد ها بروز رسانی می شوند.
نگاهی به جدول MyGuests بیاندازید :
reg_date | lastname | firstname | id | |
۲۰۱۴-۱۰-۲۲ ۱۴:۲۶:۱۵ | john@example.com | Doe | John | ۱ |
۲۰۱۴-۱۰-۲۳ ۱۰:۲۲:۳۰ | mary@example.com | Moe | Mary | ۲ |
مثال زیر رکورد با id = 2 در جدول MyGuests را بروز رسانی می کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection 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 رویه گرا:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection 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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2"; // Prepare statement $stmt = $conn->prepare($sql); // execute the query $stmt->execute(); // echo a message to say the UPDATE succeeded echo $stmt->rowCount() . " records UPDATED successfully"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?> |
بعد از بروز رسانی رکورد، جدول به شکل زیر خواهد بود :
reg_date | lastname | firstname | id | |
۲۰۱۴-۱۰-۲۲ ۱۴:۲۶:۱۵ | john@example.com | Doe | John | ۱ |
۲۰۱۴-۱۰-۲۳ ۱۰:۲۲:۳۰ | mary@example.com | Doe | Mary | ۲ |
MySQL دستور LIMIT را برای مشخص کردن تعداد رکورد های برگشتی فراهم کرده است.
دستور LIMIT برای جداول بسیار بزرگ بسیار مفید است. زیرا برگرداندن تعداد زیادی رکورد می تواند بر عملکرد برنامه تاثیر بگذارد.
فرض کنید که می خواهیم تمام رکورد های ۱ تا ۳۰ جدول “Order” را انتخاب کنیم، کوئری SQL به شکل زیر خواهد بود:
1 | $sql = "SELECT * FROM Orders LIMIT 30"; |
حال اگر بخواهیم رکورد های ۱۶ تا ۲۵ را انتخاب کنیم چه؟
MySQL دستوری به نام OFFSET دارد که می تواند محدوده رکورد ها را مشخص کند.
به مثال زیر توجه کنید:
1 | $sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15"; |
کوئری بالا تنها ۱۰ رکورد را باز می گرداند. (شروع از رکورد ۱۰)
کوئری زیر نیز کاری مانند کار بالا انجام می دهد:
1 | $sql = "SELECT * FROM Orders LIMIT 15, 10"; |
جلسه کار با دستور UPDATE در MySQL و جلسات کار با پایگاه داده MySQL در PHP نیز به پایان رسید.
در سری جلسات بعدی به آموزش کار با xml در php خواهیم پرداخت. با ما همراه باشید.
همچنین می توانید نظرات و سولات خود را از طریق بخش نظرات با ما در میان بگذارید.