I want to convert this code from mysqli to PDO

Hello all

I have this mysqli code and i am trying to convert it from mysqli to pdo. can anyone help please?

<?php
    $db = new mysqli('localhost','root','','store');
    $query = "SELECT * FROM category;";
    $result = $db->query($query);

  while($row = $result->fetch_assoc()){
    $categories[] = array("cat_id" => $row['cat_id'], "val" => $row['cat_nm']);
  }

  $query = "SELECT subcat_id, parent_id, subcat_nm FROM subcat";
  $result = $db->query($query);

  while($row = $result->fetch_assoc()){
    $subcats[$row['parent_id']][] = array("subcat_id" => $row['subcat_id'], "val" => $row['subcat_nm']);
  }

  $jsonCats = json_encode($categories);
  $jsonSubCats = json_encode($subcats);


?>

<!docytpe html>
<html>

  <head>
    <script type='text/javascript'>
      <?php
        echo "var categories = $jsonCats; \n";
        echo "var subcats = $jsonSubCats; \n";
      ?>
      function loadCategories(){
        var select = document.getElementById("categoriesSelect");
        select.onchange = updateSubCats;
        for(var i = 0; i < categories.length; i++){
          select.options[i] = new Option(categories[i].val,categories[i].cat_id);          
        }
      }
      function updateSubCats(){
        var catSelect = this;
        var parent_id = this.value;
        var subcatSelect = document.getElementById("subcatsSelect");
        subcatSelect.options.length = 0; //delete all options if any present
        for(var i = 0; i < subcats[parent_id].length; i++){
          subcatSelect.options[i] = new Option(subcats[parent_id][i].val,subcats[parent_id][i].subcat_id);
        }
      }
    </script>

  </head>

  <body onload='loadCategories()'>
  <form action="storebooks.php" method="post"><table>
<tr>
    <th scope="col">Select Category</th>
    <th scope="col">
	<select id='categoriesSelect' name="cid">
    </select></th>
 </tr>
  
<tr>
    <th scope="col">Select Subcategory</th>
    <th scope="col">
    <select id='subcatsSelect' name="subcatid">
    </select></th>
</tr>
 
</table>
</form>

</body>
</html>

I want to convert according to this connect file

<?php
error_reporting( E_ALL & ~E_DEPRECATED & ~E_NOTICE );
ob_start();
session_start();

define('DB_DRIVER', 'mysql');
define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', 'root');
define('DB_SERVER_PASSWORD', '');
define('DB_DATABASE', 'store');


define('PROJECT_NAME', 'test');
$dboptions = array(
              PDO::ATTR_PERSISTENT => FALSE, 
              PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, 
              PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
              PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
            );

try {
  $DB = new PDO(DB_DRIVER.':host='.DB_SERVER.';dbname='.DB_DATABASE, DB_SERVER_USERNAME, DB_SERVER_PASSWORD , $dboptions);  
} catch (Exception $ex) {
  echo $ex->getMessage();
  die;
}

//get error/success messages
if ($_SESSION["errorType"] != "" && $_SESSION["errorMsg"] != "" ) {
    $ERROR_TYPE = $_SESSION["errorType"];
    $ERROR_MSG = $_SESSION["errorMsg"];
    $_SESSION["errorType"] = "";
    $_SESSION["errorMsg"] = "";
}
?>

Perhaps this site will help.
https://phpdelusions.net/pdo

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.