Have a question?
Message sent Close
View Categories

MySQL Connect

3 min read

PHP 5 and later can work with a MySQL database using:

PHP 5 ба түүнээс дээшхи хувилбарууд нь дараахь зүйлийг ашиглан MySQL мэдээллийн баазтай ажиллах боломжтой.

  • MySQLi extension (the “i” stands for improved)

    MySQLi өргөтгөл (“i” нь сайжруулсан гэсэн үг)

  • PDO (PHP Data Objects)

Earlier versions of PHP used the MySQL extension. However, this extension was deprecated in 2012.

PHP-ийн өмнөх хувилбарууд MySQL өргөтгөлийг ашиглаж байсан. Гэхдээ энэ өргөтгөлийг 2012 онд хүчингүй болгосон.


Should I Use MySQLi or PDO? #

Би MySQLi эсвэл PDO ашиглах ёстой юу?

If you need a short answer, it would be “Whatever you like”.

Хэрэв танд богино хариулт хэрэгтэй бол энэ нь “Та юу дуртайгаа” бичиж болно.

Both MySQLi and PDO have their advantages:

MySQLi ба PDO хоёулаа давуу талтай байдаг.

PDO will work on 12 different database systems, whereas MySQLi will only work with MySQL databases.

PDO нь 12 өөр мэдээллийн баазын систем дээр ажиллах бол MySQLi нь зөвхөн MySQL мэдээллийн сантай ажиллах болно.

So, if you have to switch your project to use another database, PDO makes the process easy. You only have to change the connection string and a few queries. With MySQLi, you will need to rewrite the entire code – queries included.

Тиймээс, хэрэв та төслөө өөр мэдээллийн сан ашиглахаар өөрчлөх шаардлагатай бол PDO нь процессыг хялбаршуулдаг. Та зөвхөн холболтын мөр болон цөөн хэдэн асуултыг өөрчлөх хэрэгтэй. MySQLi-ийн тусламжтай та кодыг бүхэлд нь дахин бичих шаардлагатай болно.

Both are object-oriented, but MySQLi also offers a procedural API.

Хоёулаа объект хандалттай боловч MySQLi нь процедурын API-г санал болгодог.

Both support Prepared Statements. Prepared Statements protect from SQL injection, and are very important for web application security.

Хоёулаа Бэлтгэсэн мэдэгдлийг дэмжиж байна. Бэлтгэсэн мэдэгдэл нь SQL алдаанаас хамгаалдаг бөгөөд вэб програмын аюулгүй байдалд маш чухал үүрэг гүйцэтгэдэг.


MySQL Examples in Both MySQLi and PDO Syntax #

MySQLi ба PDO Syntax хоёулангийнх нь MySQL жишээ #

In this, and in the following chapters we demonstrate three ways of working with PHP and MySQL:

Энэ болон дараах бүлгүүдэд бид PHP болон MySQL-тэй ажиллах гурван аргыг харуулав:

  • MySQLi (object-oriented)
  • MySQLi (procedural)
  • PDO

MySQLi Installation #

MySQLi суулгалт #

For Linux and Windows: The MySQLi extension is automatically installed in most cases, when php5 mysql package is installed.

Linux болон Windows-ийн хувьд: MySQLi өргөтгөл нь ихэнх тохиолдолд php5 mysql багц суулгасан тохиолдолд автоматаар суулгагддаг.

For installation details, go to:

Суулгацын дэлгэрэнгүй мэдээллийг дараахь хаягаас авна уу:

http://php.net/manual/en/mysqli.installation.php


PDO Installation #

PDO Суулгалт #

For installation details, go to:

Суулгацын дэлгэрэнгүй мэдээллийг дараахь хаягаас авна уу:

 http://php.net/manual/en/pdo.installation.php


 

Open a Connection to MySQL #

MySQL руу холболт нээх #

Before we can access data in the MySQL database, we need to be able to connect to the server:

MySQL мэдээллийн бааз дахь өгөгдөлд хандахын өмнө бид сервертэй холбогдох боломжтой байх ёстой.

Example Жишээ #

(MySQLi Object-Oriented) #

<?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = new mysqli($servername, $username, $password); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; ?>

Note on the object-oriented example above:

Дээрх объект хандсан жишээн дээр анхаарна уу:

$connect_error was broken until PHP 5.2.9 and 5.3.0. If you need to ensure compatibility with PHP versions prior to 5.2.9 and 5.3.0, use the following code instead:

PHP 5.2.9 ба 5.3.0 хүртэл $ connect_error эвдэрсэн. Хэрэв танд 5.2.9 ба 5.3.0 хувилбаруудаас өмнө PHP хувилбаруудтай нийцэж байгаа эсэхийг баталгаажуулах шаардлагатай бол дараах кодыг ашиглана уу.

// Check connection
if (mysqli_connect_error()) {
  die(“Database connection failed: ” . mysqli_connect_error());
}

Example Жишээ #

(MySQLi Procedural) #

<?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = mysqli_connect($servername, $username, $password); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; ?>

Example (PDO) #

<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?>

Note: In the PDO example above we have also specified a database (myDB). PDO require a valid database to connect to. If no database is specified, an exception is thrown.

Тэмдэглэл: Дээрх PDO жишээнд бид мэдээллийн бааз (myDB) -ийг зааж өгсөн болно. PDO-д холбогдохын тулд хүчин төгөлдөр мэдээллийн сан шаардагдана. Хэрэв мэдээллийн баазыг заагаагүй бол үл хамаарах зүйл оруулна.

Tip: A great benefit of PDO is that it has an exception class to handle any problems that may occur in our database queries. If an exception is thrown within the try{ } block, the script stops executing and flows directly to the first catch(){ } block.

Зөвлөгөө: PDO-ийн давуу тал нь манай мэдээллийн сангаас гарч болзошгүй аливаа асуудлыг шийдвэрлэх онцгой ангитай байдагт оршино. Хэрэв try {} блок дотор онцгой тохиолдол гарсан бол скрипт нь гүйцэтгэлийг зогсоож, шууд catch () {} блок руу шууд урсана.


Close the Connection #

Холболтыг хаах #

The connection will be closed automatically when the script ends. To close the connection before, use the following:

Скрипт дуусахад холболт автоматаар хаагдах болно. Өмнө нь холболтыг хаахын тулд дараахь зүйлийг ашиглана уу.

MySQLi Object-Oriented: #

$conn->close();

MySQLi Procedural: #

mysqli_close($conn);

PDO: #

$conn = null;

Powered by BetterDocs

Leave a Reply