+3 ໂຫວດ

ກ່ອນອື່ນກໍ່ສະບາຍດີ, ນີ້ກໍ່ເປັນກະທູ້ທໍາອິດຫລັງຈາກ laozaa ໄດ້ເກີດໃໝ່ ໂຕຂ້ອຍເອງ (ຂໍແທນດ້ວຍຄໍາວ່າຂ້ອຍເນາະ ເພາະຕອນສະໄໝ laozaa ລຸ້ນທໍາອິດໃຊ້ ຂ້າພະເຈົ້າ ມັນຍາວ ເມື່ອຍພິມ) ຂ້ອຍເອງກໍ່ເປັນ Mod Laozaa ຕັ້ງແຕ່ກ່ອນໆ ພຸ້ນແຫລະ ແລະ ທີມງານລຸ້ນເກົ່າເຮົາທັງໝົດກໍ່ຍັງຮັກແພງ ແລະ ໄປຫລິ້ນນໍາກັນເປັນປະຈໍາ. ຄິດຮອດສະໄໝເກົ່າໆເລີຍຢາກ ຂຽນຫຍັງດີໆມາເກັບໄວ້ ນຶ່ງກະໃຫ້ຕົນເອງໄດ້ອ່ານຄືນ. ສອງ ກະໄດ້ຊ່ວຍຜູ້ອື່ນ ເຖິງຈະເປັນເລື່ອງໆນ້ອຍໆ ແຕ່ເລື່ອງນ້ອຍໆ ຫລາຍໆເລື່ອງກໍ່ເຮັດໃຫ້ເປັນເລື່ອງໃຫຍ່ໄດ້ ເນາະ... ບົດຄວາມນີ້ຂ້ອຍຂຽນຖິ້ມໄວ້ຢູ່ blog ສ່ວນໂຕ, ແຕ່ມັນສ່ວນໂຕເນາະເລີຍບໍ່ມີໃຜເຫັນ ກໍ່ເລີຍເອົາມາລົງໃນນີ້ນໍາເພື່ອໃຫ້ຫລາຍໆຄົນໄດ້ອ່ານນໍາກັນ. ເຊິ່ງແຕ່ລະບົດກໍ່ຫນ້າຈະເຮັດປະມານນີ້. ເຂົ້າເລື່ອງເລີຍຊະ

PDO ແມ່ນຫຍັງ? PDO (PHP Database Object) ເປັນອີກຫຍັງທີ່ຄ້າຍກັບ mysql ຫຼື mysqli ນັ້ນແຫລະ ທີ່ເວລາເຮົາຂຽນໂປຣແກມ ແລະ ຕ້ອງການໃຫ້ມັນລົມກັບຖານຂໍ້ມູນີຮູ້ເລື່ອງ. ແຕ່ຄວາມພິເສດຂອງ PDO ນັ້ນແມ່ນເຮັດໃຫ້ເຮົາສາມາດເຮັດວຽກຮ່ວມກັບຖານຂໍ້ມູນໄດ້ເກືອບທຸກໂຕ. ເອົາສັ້ນໆແບບນີ້ກ່ອນຊະ.

ຕາມຄໍາເຫັນສ່ວນໂຕແລ້ວຢາກປ່ຽນມາໃຊ້ PDO ລອງເບິ່ງ ເພາະເບື່ອຂຽນແບບເກົ່າ ອີກທັງຍັງໄດ້ຍິນມາວ່າການຕິດຕໍ່ກັບຖານຂໍ້ມູນແບບ PDO ນີ້ມັນປອດໄພ ແລະ ຄັກກວ່າ ແບບ mysql. ຄັກກວ່າແນວໃດນັ້ນ ໄວ້ມື້ໜ້າມາເລົ່າສູ່ຟັງໃໝ່ເນາະ.

ເລີ່ມກັນເລີຍ: code ດ້ານລຸ່ມນີ້ແມ່ນສະແດງຕົວຢ່າງວ່າເຮົາຈະທໍາການ connect database ທີ່ເປັນ mysql ໄດ້ແນວໃດ?…ເຊິ່ງໃນທີ່ນີ້ ຂ້ອຍໄດ້ລົງ ທັງໝົດຜ່ານ Appserve (ຫນ້າຈະຄຸ້ນເຄີຍກັນດີເນາະ) ຫຼື ໃຜຕ້ອງການທົດລອງກັບ web server ແບບອື່ນໆ ລອງເບິ່ງກໍ່ໄດ້. ຄິດວ່າບໍ່ໜ້າຈະບໍ່ຕ່າງຫຍັງກັນຫຼາຍ

define("US","root");
define("PAS","aBcDeF");

$servername = "localhost";
$dbname = "DatabseKongJao";

try{
$conn = new PDO("mysql:host=$servername;dbname=$dbname", US, PAS);
} catch (PDOException $e){
echo "Bor sa mard tor kup than kor moon dai dr!";
}

ມັນເປັນແນວນີ້ ທໍາອິດກະປະກາດຕົວປ່ຽນຂຶ້ນມາ 4 ໂຕເຊິ່ງເກັບຄ່າ: user, password, host ແລະ database
ເຊິ່ງຈະສັງເກັດເຫັນທີ່ເປັນຫຍັງປະກາດບໍ່ຄືກັນ ລະຫວ່າງ 2 ໂຕປ່ຽນທໍາອິດ ແລະ 2 ໂຕຕໍ່ມາ.
ການປະການແບບ DEFINE ຄືເປັນການປະກາດຕົວປ່ຽນແບບຄົງທີ ຖາວອນ ບໍ່ສາມາດປ່ຽນແປງໄດ້ຕະຫລອດໄປ
ສ່ວນການປະການ $servername ແລະ $dbname ຄືເປັນການປະກາດໂຕປ່ຽນປົກກະຕິ. ມັກແນວໃດກໍ່ພິຈາລະນາຕົວຄວາມເໝາະສົມກັນໄປເລີຍ…

ຫຼັງຈາກນັ້ນເຮົາມາທໍາການ connect database ກັນເລີຍ ເຊິ່ງຈະສັງເກດເຫັນນີ້:

$conn = new PDO("mysql:host=$servername;dbname=$dbname", US, PAS);

ໂຕນີ້ແຫລະເປັນໂຕ connect database ແຖວດຽວ ໂຄດງ່າຍ. ຈະສັງເກດເປັນວ່າໃນການເອີ້ຍໃຊ້ PDO ຈະມີຄໍາວ່າ new ທາງຫນ້າກໍ່ເນື່ອງຈາກວ່າ PDO ມັນຖືກຂຽນແບບ OOP (Object-Oriented Programming)ຕ້ອງເອີ້ນ object ນັ້ນມາໃຊ້ກ່ອນ. ເຊິ່ງຄໍາສັ່ງ new ກໍ່ເປັນການເອີ້ນມັນມານັ້ນແຫລະ ສໍາລັບ OOP ນັ້ນເຂົ້າໃຈໃນພາສາລາວ ຄື ຂຽນໂປຣແກມໃນລັກສະນະວັດຖຸ. ຄືຂຽນໃຫ້ມັນເປັນ class ເປັນກຸ່ມເປັນກ້ອນ ແລ້ວເອົາໄປໃຊ້ຢູ່ໃສກະໄດ້ ແບບບໍ່ຕ້ອງມາຂຽນໃໝ່ຊີ້ນ່າ..

ໄບ່ນອກເລື່້ອງຕະຫຼອດ… ກັບມາເນາະເຮົາຈະສັງເກດເຫັນ mysql:host=$servername ກະແມ່ນ mysql:host = localhost ອັນດຽວກັນ ຄືເຮົາວ່າງໂຕປ່ຽນ $servername = “localhost”; ເດ່ະ. ໂຕອື່ນໆກໍ່ຄືກັນ.
ສ່ວນໂຕນີ້ US ແລະ PAS ແມ່ນຊື່ຂອງໂຕປ່ຽນຖາວອນທີ່ໄດ້ວ່າງໄວ້ທໍາອິດ ກໍ່ເອົາມາໃສ່ເຊັ່ນກັນ.

ສ່ວນໂຕແລ້ວຂ້ອຍມັກຈະວ່າງຕົວປ່ຽນເປັນ DEFINE ຫາກວ່າຄ່າຂອງມັນບໍ່ມີການປ່ຽນແປງ ເພາະຈະເປັນການຕີກອບ ແລະ ບັງຄັບໃນໂຕ. ຫຼືບໍ່ກໍ່ຂຽນລົງໃນ class ກໍານົດ access modifier ເປັນ private ປະໄວ້ ເພື່ອໃຫ້ໃຊ້ໄດ້ສະເພາະ ຫຍັງແບບນີ້ເປັນຕົ້ນ.

ອ່ານມາຮອດບ່ອນນີ້ບາງຄົນກໍ່ສະສົງໄສວ່າ try catch ທີ່ຂຽນຫຼາຍໆ ກວມ ໂຕ $conn ຫັນມັນແມ່ນຫຍັງ? ໂຕ try catch ກໍ່ຄືເປັນການທົດສອບໃຫ້ແນ່ໃນວ່າ ອັນທີ່ເຮົາຢາກຕໍ່ໄປຫາ database ມັນຕໍ່ໄດ້ແທ້ ແລ້ວ ຫາກມັນຕໍ່ບໍ່ໄດ້ກໍ່ໃຫ້ມັນໂຍນ Exception ອອກມາ ແລ້ວເຮົາກໍ່ລະບຸວ່າໃຫ້ມັນສະແດງຫຍັງ ຫາກບໍ່ກວດສອບໂຕນີ້ເຂົ້າໄປເອົາແຕ່ໂຕ connect ພຽວໆ ບາດມັນຕໍ່ບໍ່ໄດ້ ສົ່ງ error ອອກມາລະມຶງເອີ້ຍຍຍຍຍຍ………….. ຊິບຫາຍ ກັນເລີຍ… ສະນັ້ນເຮົາກໍ່ຕ້ອງມີໂຕນີ້ມາໄວ້ ເພື່ອໄວ້ກວດສອບວ່າອັນທີ່ເຮົາຂຽນມັນຖືກມັນຜິດບ່ອນໃດ ເນາະ.

ມາຮອດນີ້ກໍ່ລອງກັນເລີຍ ຫາກວ່າໂຄ໊ດທາງເຖິງເຮັດວຽກ ໄດ້. ຜ່ານນນນນ ມັນຈະບໍ່ສະແດງຫຍັງອອກມາໃຫ້ເບິ່ງເດີ້ ແຕ່ເພື່ອຢາກໃຫ້ແນ່ໃຈວ່າມັນໄດ້ແທ້ກໍ່ເອົາໂຄ໊ດລຸ່ມນີ້ ໄປຕໍ່ໃສ່ແຖງຕໍ່ໄປ

if($conn){
echo "Tor dai lw.";
}

ເວລາແລ່ນອອກມາມັນກໍ່ຈະໂຊວ່າ Tor dai lw (ຕໍ່ໄດ້ແລ້ວ).

a1

ຫາກຕໍ່ບໍ່ໄດ້ມັນກໍ່ຈະຂຽນແນວນີ້ເ່ດ່ະ

a2

ຫາກບໍ່ໃຊ້ try catch ແລ້ວເສືອກຕໍ່ບໍ່ໄດ້ເດ່ະ? ບອກເລີ່ຍວ່າຊິບຫາຍ

a3

ມັນບອກຫມົດເລີຍ…. ສະນັ້ນກໍ່ຮູ້ແລ້ວເນາະວ່າຈະຕ້ອງໃຊ້.

ມາຮອດນີ້ການ connect ກັບຖານຂໍ້ມູນກໍ່ຫນ້າຈະຈົບແລ້ວ. ສໍາລັບການທີ່ເຮົາຈະເອົາໄປໃຊ້ແນວໃດ? ດຶງຂໍ້ມູນອອກມາແນວໃດ? ໆລໆ ດຽວຈະຄ່ອຍໆຂຽນລົງມາເລົ່າສູ່ຟັງ.

ສະບາຍດີ.

ໄດ້ຖາມ ມັງກອນ 11 ໃນ Programming ໂດຍ Tolomold (210 ຄະແນນ)

2 ຄຳຕອບ

0 ໂຫວດ
ສຸດຍອດເລີຍ ຂອບໃຈຫລາຍໆ ທ່ານ Tolomold
ໄດ້ຄຳຕອບແລ້ວ ມັງກອນ 11 ໂດຍ Os555 (1,170 ຄະແນນ)
Mod ເກົ່າ ລາຍງານໂຕແບບໄວໆ 555.
+1 ໂຫວດ

ເອົາມາແຊນຳ ການ query ແບບມີເງື່ອນໄຂ WHERE

$PDOConfig = new PDOConfig();
$conn = $PDOConfig->init_dbh();
$query = $conn->prepare($sqlQuery);    // sqlQuery ແມ່ນສົ່ງພາສາ SQL ມາ ແບບໃຊ້  "?" SELECT * FROM TABLE WHERE _id = ?

// ຖ້າບໍ່ມີເງື່ອນໄຂກະຕັດ  WHERE ອອກ ແລ້ວກະສັ່ງ execute() ແບບບໍ່ສົ່ງຫຍັງໄປເລີຍ

if ($selectionArgs != null && $selection != null) {
$query->execute($selectionArgs); //ຄ່າທີ່ສົ່ງໄປບ່ອນໝາຍ "?" 
} else{
$query->execute(); 
}
if ($query)    return $query->fetchAll(PDO::FETCH_ASSOC);
return 0;

ໄດ້ຄຳຕອບແລ້ວ ມັງກອນ 11 ໂດຍ nokieng (260 ຄະແນນ)
ຂອບໃຈແບບຈິງໃຈເລີຍເນາະ ສໍາລັບຄໍາເຫັນ ຮູ້ສຶກວ່າ laozaa ຄ່ອຍໆມີຊີວິດຂຶ້ນມາເທື່ອລະຫນ່ອຍ ເພາະມີການສົນທະນາ ກັນເກີດຂຶ້ນແບບນີ້.

ຂໍເພີ່ມໜ່ອຍນຶ່ງຕໍ່ຈາກຄໍາເຫັນຂອງ nokieng ເນາະ..,ເຮົາຈະໄດ້ ຂໍ້ມູນ ຊຸດນຶ່ງອອກມາໃນຮູບແບບ array ຫລັງຈາກທີ່ເຮັດ FETCH_ASSOC ເກັບໄວ້ໃນໂຕປ່ຽນ $query ເຊິ່ງກໍ່ເປັນຂໍ້ມູນທີ່ພ້ອມໃຊ້ງານ

ເພື່ອລຽງຂໍ້ມູນອອກມາໃຫ້ເຫັນແບບງາມໆ ກໍ່ສາມາດໃຊ້ຄໍາສັ່ງນີ້ (ເອົາແບບງ່າຍໆກ່ອນເນາະ ພໍໃຫ້ເຫັນຂໍ້ມູນເປັນຊັດເປັນສ່ວນ ເພື່ອຜູ່ຍັງບໍ່ຮູ້. ສໍາລັບຜູ້ຮູ້ ຄົງຈະເປັນຫຍັງທີ່ ງ່າຍຫລາຍ)
 foreach ($query  as $a1) {
    foreach ($a1 as $a2) {
        echo "<br>$a2\n";
 }
 ທັງນັ້ນທັງນີ້ມັນກໍ່ຂຶ້ນກັບວ່າຂໍ້ມູນ ໂດຍທົ່ວໄປແລ້ວຮູບແບບຂອງ array ທີ່ດຶງອອກມາກໍ່ຈະເກັບຢຸ່ 2 ຊັ້ນຄື ຊັ່ນທີ່ຫນຶ່ງເກັບກຸ່ມຂອງຂໍ້ມູນໃນ 1 record ແລະ ຊັ້ນທີ່ 2 ເກັບລາຍລະອຽດ. ທີ່ເຫລືອກໍ່ເອົາໄປປັບໃຊ້ກັນຕາມລັກສະນະເນາະ.
ຍິນດີຕ້ອນຮັບ ທ່ານເຂົ້າສູ່ ລາວຊ້າາາາາາ Laozaa dot com ສັງຄົມອອນລາຍ ຂອງປວງຊົນລາວທັງຊາດ ພົບກັບ ຄວາມຫນ້າຮັກ ແລະ ສົດໄສ ຂອງ ຄົນລາວຮຸ່ນໃຫມ່ໄວຊ່າ........ໄດ້ທີ່ນີ້.