נגישות       נגישות
שינוי גודל טקסט:
א א א
שינוי צבעי האתר:
? מקשי קיצור:

לחיצה חוזרת ונשנית על המקש Tab תעביר אתכם בין הקישורים והאזורים השונים בעמוד.

הפעלת מקשי הקיצור תלויה בדפדפן שבו אתם משתמשים.

Internet Explorer, Chrome ובגרסאות ישנות של Firefox: לחצו על מקש Alt ועל מקש המספר או האות על-פי הרשימה. ב Firefox 3 ומעלה: לחצו על המקשים Alt + Shift + המספר או האות.

S - עבור לתוכן הדף
L - חיפוש
1- עמוד הבית
2 - פרוייקטים
3 - מדריכים
4 - אודות
5 - צרו קשר
6 - הצהרת נגישות
 

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.

//צור קשר
$connection = mysqli_connect(DB_HOST ,DB_USER ,DB_PASS ,DB_NAME);

// בדוק את הקשר
if (mysqli_connect_errno($connection)){
  echo "Failed to connect:" . mysqli_connect_error();
  die();
}

// הגדרת סט הנתונים כדי שיתמוך בעברית
mysqli_set_charset($connection, "utf8");

 

שאילתות מסוגים שונים

1. הכנסת רשומה למסד הנתונים באמצעות INSERT, ודיווח שגיאות בהתאם.

<?php
//שאילתה להכנסת רשומה למסד הנתונים
$name = mysqli_real_escape_string($connection, "יוסי");
$name = mysqli_real_escape_string($connection, "ab555dfg");
$name = mysqli_real_escape_string($connection, "yossefbh5@gmail.com");
$access = (int)1;
$login = (int)1;
$status = (int)4;
 
$sql = "INSERT INTO users(name,pass,mail,theme,signature,signature_format,created,access,login,status,timezone,language,picture,init,data)";
$sql .= " VALUES ('$name', '$password', '$mail', '', '', 'NULL', '".time()."', $access, $login, $status, 'Asia/Jerusalem', 'he' , 0, '', '')";
 
if(mysqli_query($connection,$sql)){
  // מה מספר הרשומה שהוכנסה למסד הנתונים?
  $lastInsertedId = mysqli_insert_id($connection);
 
  if($lastInsertedId < 1) {
    echo "Problem inserting ";
  } else {
    echo "The last inserted id is: " . $lastInsertedId;
  }
} else {
  die('Error:' . mysqli_error($connection));
}

ה-uid כלל אינו מוזכר מפני שהוא מוגדר AUTO_INCREMENT.

כדי להכניס נתונים באופן בטוח למסד הנתונים משתמשים ב- mysqli_real_escape_string

במקרה שידוע סוג הנתונים מומלץ להשתמש בהמרה לסוג. לדוגמה, int כשרוצים להכניס מספרים שלמים.

מסיבות אבטחה, רצוי מאוד לשקול להשתמש במסננים שמספקת PHP או בביטויים רגולריים.

 

2. שאילתה לקריאה מבסיס הנתונים באמצעות SELECT

//שאילתה לקריאה מבסיס הנתונים
$sql = "SELECT name, mail, picture FROM users WHERE (uid 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['mail'] . " ";
    echo $row['picture'] . " ";
    echo "<br />";
  }
} else {
  echo "SELECT failed:" . mysqli_connect_error();
}

 

3. שאילתה לעדכון רשומה בבסיס הנתונים באמצעות UPDATE

// שאילתה לעדכון רשומה בבסיס הנתונים
$sql = "UPDATE users SET name = 'שם מעודכן' WHERE uid= 2 AND mail='somemail@gmail.com'";
 
if(mysqli_query($connection,$sql)) {
  echo "sql update success.";
} else {
  echo "UPDATE failed:" . mysqli_connect_error();
}

 

4. מחיקת רשומה מבסיס הנתונים באמצעות DELETE

//מחיקת רשומה מבסיס הנתונים
$sql = "DELETE FROM users WHERE uid= 3 ";
 
if(mysqli_query($connection,$sql)) {
  echo "Sql deleted successfully.";
} else {
  echo "DELETE failed:" . mysqli_connect_error();
}

 

סגירת התקשורת עם בסיס הנתונים

כשסקריפט ה-PHP מסיים לרוץ, ההתקשרות עם מסד הנתונים נסגרת באופן אוטומטי. עם זאת, מקובל לשבץ קוד שסוגר את ההתקשרות עם בסיס הנתונים בתחתית הקובץ.

// סגירת התקשרות עם בסיס הנתונים
mysqli_close($connection);
?>

 

במדריך הבא תוכלו ללמוד על PDO: הרחבת PHP לעבודה עם מסדי נתונים, שנחשבת לדרך המומלצת ביותר לעבודה עם PHP מול מסד הנתונים.

 

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

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

 

= 4 + 6