MySQLi - כתיבה, קריאה, עדכון, מחיקה באמצעות PHP
מדריך זה כולל את קוד ה-PHP וה-MySQLi הדרוש להתקשרות ולביצוע הפעולות הנפוצות ביותר עם מסד הנתונים באתר.
יצירת קבועים להתקשרות עם בסיס הנתונים
קודם כל, מגדירים את הקבועים שישמשו אותנו להתקשרות עם מסד הנתונים.
לדוגמה:
<?php
//קבועים להתקשרות עם בסיס הנתונים
defined('DB_HOST')? null : define('DB_HOST', 'localhost');
defined('DB_USER')? null : define('DB_USER', 'root');
defined('DB_PASS')? null : define('DB_PASS', '');
defined('DB_NAME')? null : define('DB_NAME', 'sandbox_db');
יצירת התקשרות עם בסיס הנתונים
את ההתקשרות עם בסיס הנתונים נציב לתוך קבוע $connection כדי שתהיה לנו גישה אליו במהלך ההתקשרות.
mysqli_connect_error משמש לדיווח שגיאות של mysqli.
<?php
//צור קשר
$connection = mysqli_connect(DB_HOST ,DB_USER ,DB_PASS ,DB_NAME);
// בדוק את הקשר
if (mysqli_connect_errno($connection))
{
echo "Failed to connect:" . mysqli_connect_error();
exit();
}
// הגדרת סט הנתונים כדי שיתמוך בעברית
mysqli_set_charset($connection, "utf8");
שאילתות מסוגים שונים
1. הכנסת רשומה למסד הנתונים באמצעות INSERT, ודיווח שגיאות בהתאם.
<?php
//שאילתה להכנסת רשומה למסד הנתונים
$name = mysqli_real_escape_string($connection, "יוסי");
$city = mysqli_real_escape_string($connection, "tel aviv");
$active = (int)1;
$sql = "INSERT INTO users(name, city, active) VALUES ('{$name}', '{$city}', '{$active}')";
if(mysqli_query($connection, $sql))
{
// מה מספר הרשומה שהוכנסה למסד הנתונים?
$lastInsertedId = mysqli_insert_id($connection);
echo "The last inserted id is: " . $lastInsertedId;
}
else
{
exit('Error: ' . mysqli_error($connection));
}
- ה-id כלל אינו מוזכר מפני שהוא צריך להיות מוגדר כ AUTO_INCREMENT מה שיגרום להכנסת הרשומה החדשה למסד הנתונים תחת מזהה ייחודי.
- כדי להכניס נתונים באופן בטוח למסד הנתונים משתמשים ב- mysqli_real_escape_string.
- במקרה שידוע סוג הנתונים מומלץ להשתמש בהמרה לסוג. לדוגמה, int כשרוצים להכניס מספרים שלמים.
- מסיבות אבטחה, רצוי מאוד לשקול להשתמש במסננים שמספקת PHP או בביטויים רגולריים.
2. שאילתה לקריאה מבסיס הנתונים באמצעות SELECT
//שאילתה לקריאה מבסיס הנתונים
$sql = "SELECT name, city, active FROM users WHERE (id BETWEEN 1 AND 7)";
if($result = mysqli_query($connection,$sql))
{
// מספר הרשומות המוחזרות בשאילתה
$count = mysqli_num_rows($result);
// שליפת הרשומות בתוך לולאה
while($row = mysqli_fetch_assoc($result))
{
echo $row['name'] . " ";
echo $row['city'] . " ";
echo $row['active'] . " ";
}
}
else
{
echo "SELECT failed: " . mysqli_connect_error();
}
3. שאילתה לעדכון רשומה בבסיס הנתונים באמצעות UPDATE
// שאילתה לעדכון רשומה בבסיס הנתונים
$sql = "UPDATE users SET name = 'יוסף' WHERE id= 1";
if(mysqli_query($connection,$sql))
{
echo "sql update success.";
}
else
{
echo "UPDATE failed: " . mysqli_connect_error();
}
4. מחיקת רשומה מבסיס הנתונים באמצעות DELETE
//מחיקת רשומה מבסיס הנתונים
$sql = "DELETE FROM users WHERE uid = 1 ";
if(mysqli_query($connection,$sql))
{
echo "Sql deleted successfully.";
}
else
{
echo "DELETE failed: " . mysqli_connect_error();
}
סגירת התקשורת עם בסיס הנתונים
כשסקריפט ה-PHP מסיים לרוץ, ההתקשרות עם מסד הנתונים נסגרת באופן אוטומטי. עם זאת, אפשר להשתמש בקוד שסוגר את ההתקשרות עם בסיס הנתונים בתחתית הקובץ.
// סגירת התקשרות עם בסיס הנתונים
mysqli_close($connection);
במדריך הבא תוכלו ללמוד על PDO: הרחבת PHP לעבודה עם מסדי נתונים, שנחשבת לדרך המומלצת ביותר לעבודה עם PHP מול מסד הנתונים.
אהבתם? לא אהבתם? דרגו!
0 הצבעות, ממוצע 0 מתוך 5 כוכבים