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 מול מסד הנתונים.

 

לכל מדריכי ה-PHP

הוסף תגובה חדשה

 

= 5 + 9