Insert Into MySQL Haifanyi Kazi Kwenye PHP – Hatua za Kuitatua (Mwongozo Rahisi)
Utangulizi
Kuna wakati unaandika PHP code yako vizuri, hakuna error inayoonekana, lakini:
❌ Data haingii kabisa kwenye database
Hili ni tatizo la kawaida sana kwa beginners na hata intermediate developers.
Katika blog post hii, tutajifunza sababu halisi, makosa yanayofanywa mara nyingi, na hatua sahihi za kurekebisha INSERT query kwenye PHP MySQL.
Sababu Kuu Zinazofanya INSERT Query Ishindwe
1️⃣ Query Haitekelezwi Kabisa
mysqli_query($conn, $sql);
Bila kuangalia matokeo, hujui kama imefail.
✅ Sahihi:
if(!mysqli_query($conn, $sql)){
die(mysqli_error($conn));
}
2️⃣ Column Names Hazifanani na Database
INSERT INTO users (fullname, email) VALUES ('John', 'a@gmail.com');
Lakini DB ina column name badala ya fullname.
✔ Hakikisha majina yanafanana 100%
3️⃣ Variables za PHP Hazina Data
$name = $_POST['name'];
Kama form haijatumwa → value ni empty.
✔ Tumia:
$name = $_POST['name'] ?? '';
4️⃣ NOT NULL Columns Hazipewi Value
Kama column ni NOT NULL na haujampa value → INSERT itafail.
✔ Hakikisha fields zote muhimu zinapewa data
Mfano Mbaya (Common Mistake)
$sql = "INSERT INTO users VALUES('', '$name', '$email')";
❌ Hatari ❌ Inasababisha errors nyingi
Mfano Sahihi (MySQLi – Simple)
$name = $_POST['name'] ?? '';
$email = $_POST['email'] ?? '';
$sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
if(mysqli_query($conn, $sql)){
echo "Data imeingizwa kikamilifu";
}else{
echo "Error: " . mysqli_error($conn);
}
Mfano Bora Zaidi (PDO – Recommended)
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute([$name, $email]);
echo "Data imeingizwa kikamilifu";
✔ Salama ✔ Inazuia SQL Injection
Debug Tips Muhimu Sana
✔ Print variables kabla ya INSERT
✔ Echo query uione
✔ Angalia phpMyAdmin kama data inaingia
✔ Tumia mysqli_error() au PDOException
Makosa ya Kuepuka ❌
❌ Kutumia INSERT INTO table VALUES(...)
❌ Kutokagua kama form imetumwa
❌ Kuficha errors