سلام
وقت بخیر
من یه تابع دارم برای اتصال به دیتابیس به شکا زیر :
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 کنید و کوئریتون رو اجرا کنید
تو پاسخ های قبلی مثال هارو بخونید طبق همونا انجام بدید ،مشکلتون حل میشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟