راکت

ساخت متد برای اتصال به دیتابیس

7 پاسخ

سلام
وقت بخیر
من یه تابع دارم برای اتصال به دیتابیس به شکا زیر :

function connectToDB() {
    try {
        return new PDO("mysql:host=localhost;dbname=my_db","root","");
    } catch (PDOException $e) {
        die($e->getMessage());
    }
}

حالا تو صفحات مختلف چجوری میتونم ازش استفاده کنم ؟
مثلا اینجا :

<?php  
 //fetch.php  
 $connect = mysqli_connect("localhost", "root", "", "my_db");  
 if(isset($_POST["employee_id"]))  
 {  
      $query = "SELECT * FROM persons WHERE id = '".$_POST["employee_id"]."'";  
      $result = mysqli_query($connect, $query);  
      $row = mysqli_fetch_array($result);  
      echo json_encode($row);  
 }  
 ?>
ثبت پرسش جدید

پاسخ‌ها

7
Sina
Sina
@sinayas1

دوستان همچنان منتظر کمک شما هستم
با تشکر

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@sinayas1

اگر از روش PDO استفاده میکنید باید به این شکل باشه
فانکشن اتصال :

function connectToDB() {
    try {
        return new PDO("mysql:host=localhost;dbname=test","","");
    } catch (PDOException $e) {
        die($e->getMessage());
    }
}

بعد برای کوئری زدن و ...
یه مثال :

 $connect = connectToDB();
    $stat = $connect ->prepare("SELECT * FROM users WHERE username = :username");
    $stat->bindParam("username" , $username );
    $stat->execute();

    $user = $statment->fetch(PDO::FETCH_OBJ);

به این شکل باید استفاده کنید

روش بالایی که شما زدید اتصال به روش mysqli هست

شاید پاسخ شما همین‌جا باشد

Sina
Sina
@sinayas1

@Alimotreb
ممنون از پاسخ شما اما من با توجه به صحبت شما کدم رو به شکل زیر تغییر دادم ولی متاسفانه رکوردی بر نمیگردونه :

 <?php
 require_once "functions.php";
  $connect = connectToDB();
   if(isset($_POST["employee_id"]))  
 {  
    $stat = $connect ->prepare("SELECT * FROM persons WHERE id = '".$_POST["employee_id"]."'");
    $stat->bindParam("employee_id" , $employee_id );
    $stat->execute();
    $user = $statment->fetch(PDO::FETCH_OBJ);
    echo json_encode($row);
    }

کد قبلی که دارم استفاده میکنم و مشکلی نداره

<?php  
 //fetch.php  
 $connect = mysqli_connect("localhost", "oot", "", "");  
 if(isset($_POST["employee_id"]))  
 {  
      $query = "SELECT * FROM persons WHERE id = '".$_POST["employee_id"]."'";  
      $result = mysqli_query($connect, $query);  
      $row = mysqli_fetch_array($result);  
      echo json_encode($row);  
 }  
 ?>
Sina
Sina
@sinayas1

مورد اول با تغییر کد به شکل زیر برطرف شد :

 //fetch.php  
require_once "functions.php";
  $connect = connectToDB();
   if(isset($_POST["employee_id"]))  
 {  
    $statment = $connect ->prepare("SELECT * FROM persons WHERE id = '".$_POST["employee_id"]."'");
    $statment->bindParam("employee_id" , $employee_id);
    $statment->execute();
    $row = $statment->fetch();
    echo json_encode($row);
    }

فقط اگه بفرمایید کد زیر رو چجوری میتونم ویرایش کنم ممنون میشم :

<?php  
 $connect = mysqli_connect("localhost", "", "", "");  
 if(!empty($_POST))  
 {  
      $output = '';  
      $message = '';  
      $NationalCode = mysqli_real_escape_string($connect, $_POST["NationalCode"]);  
      $firstname = mysqli_real_escape_string($connect, $_POST["firstname"]);  

      if($_POST["employee_id"] != '')  
      {  
           $query = "  
           UPDATE persons   
           SET    
           NationalCode='$NationalCode',   
           firstname='$firstname'    
           WHERE id='".$_POST["employee_id"]."'";  
           $message = 'Update completed successfully';  
      }  
      else  
      {  
           $query = "  
           INSERT INTO persons(
           NationalCode , 
           firstname
           )  
           VALUES(
           '$PersonnelCode', 
           '$NationalCode', 
           '$firstname' 

           );  
           ";  
           $message = 'Data Inserted';  
      }  
      if(mysqli_query($connect, $query))  
      {  
           $output .= '<div class="alert alert-success" role="alert"><label class="text-muted"> '. $message . ' </label></div>';  

      }  
      echo $output;  
 }  
 ?>
Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@sinayas1

ببینید برای اتصال و کار با پایگاه داده 2 روش هست
یکی روش
mysqli که شما دارید استفاده میکنید و مشکلی نداره
روش دوم هم روش PDO هست
که وقتی از مراحل prepare و bindParam استفاده میکنید داده هارو خودش اوکی میکنه
کدتون رو باید اینطوری بنویسید

require_once "functions.php";
  $connect = connectToDB();
   if(isset($_POST["employee_id"]))  
 {  
    $statment = $connect ->prepare("SELECT * FROM persons WHERE id = :userid");
    $statment->bindParam("userid" , $_POST["employee_id"]);
    $statment->execute();
    $row = $statment->fetch();
    echo json_encode($row);
    }

این روش PDO هست

روش mysqli هم روش زیر هست که دارید استفاده میکنید


<?php  
 //fetch.php  
 $connect = mysqli_connect("localhost", "oot", "", "");  
 if(isset($_POST["employee_id"]))  
 {  
      $query = "SELECT * FROM persons WHERE id = '".$_POST["employee_id"]."'";  
      $result = mysqli_query($connect, $query);  
      $row = mysqli_fetch_array($result);  
      echo json_encode($row);  
 }  
 ?>
Sina
Sina
@sinayas1

سیلام ممنون از لطفتون
@Alimotreb
فقط میشه بکید این تیکه کد رو چجوری ویرایش کنم ؟به روش PDO ?

<?php  
 $connect = mysqli_connect("localhost", "", "", "");  
 if(!empty($_POST))  
 {  
      $output = '';  
      $message = '';  
      $NationalCode = mysqli_real_escape_string($connect, $_POST["NationalCode"]);  
      $firstname = mysqli_real_escape_string($connect, $_POST["firstname"]);  

      if($_POST["employee_id"] != '')  
      {  
           $query = "  
           UPDATE persons   
           SET    
           NationalCode='$NationalCode',   
           firstname='$firstname'    
           WHERE id='".$_POST["employee_id"]."'";  
           $message = 'Update completed successfully';  
      }  
      else  
      {  
           $query = "  
           INSERT INTO persons(
           NationalCode , 
           firstname
           )  
           VALUES(
           '$PersonnelCode', 
           '$NationalCode', 
           '$firstname' 

           );  
           ";  
           $message = 'Data Inserted';  
      }  
      if(mysqli_query($connect, $query))  
      {  
           $output .= '<div class="alert alert-success" role="alert"><label class="text-muted"> '. $message . ' </label></div>';  

      }  
      echo $output;  
 }  
 ?>
Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@sinayas1

ببینید کوئریتون به این شکل میشه

$query = "UPDATE persons SET NationalCode=:NationalCode,firstname=:firstname WHERE id=:employee_id";  

مطابق نمونه ای هایی که تو پاسخ های قبلی بهتون دادم ، هر کدوم از متغیر هارو bindparam کنید و کوئریتون رو اجرا کنید

تو پاسخ های قبلی مثال هارو بخونید طبق همونا انجام بدید ،مشکلتون حل میشه

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام