سلام
وقت بخیر
من یه تابع دارم برای اتصال به دیتابیس به شکا زیر :
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); } ?>
سلام
@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 هست
@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); } ?>
مورد اول با تغییر کد به شکل زیر برطرف شد :
//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; } ?>
سلام
@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); } ?>
سیلام ممنون از لطفتون
@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; } ?>
سلام
@sinayas1
ببینید کوئریتون به این شکل میشه
$query = "UPDATE persons SET NationalCode=:NationalCode,firstname=:firstname WHERE id=:employee_id";
مطابق نمونه ای هایی که تو پاسخ های قبلی بهتون دادم ، هر کدوم از متغیر هارو bindparam کنید و کوئریتون رو اجرا کنید
تو پاسخ های قبلی مثال هارو بخونید طبق همونا انجام بدید ،مشکلتون حل میشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟