آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

آیا این ساختار برای وب سرویس درست است ؟ (مهم)

PandaStudio  12 سال پیش  12 سال پیش
+1 0

سلام دوستان

من با دیدن آموزش های استاد و بررسی پست های مربوط به فارسی نویسی و مطالعه چندتا سایت ازجمله این به یک ساختاری برای وب سرویس رسیدم لطفا راهنماییم کنید این ساختار درسته؟

اول فایل Config.php برای کانفیگ کردن دیتابیس

 <?php
/*************** Database config variables ***************/
define("DB_HOST", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "my_db");
/*********************************************************/
?>

فایل DbConnect.php برای مدیریت کانکشن

 <?php
header('Content-Type: text/html; charset=utf-8');
class DbConnect {

    // constructor
    function __construct() {}

    // destructor
    function __destruct() {}

    /*************** Connection ***************/
    function connectToDatabase(){
        require_once 'Config.php';
        $connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

        if($connection){
            mysqli_query($connection,"SET NAMES 'utf8'");
            mysqli_set_charset($connection,"UTF8");
        }else{
            echo mysqli_error($connection);
        }

        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }

        return $connection;
    }
    /******************************************/
}
?>

فایل PeopleFunctions.php برای ذخیره توابع مورد نیاز برای کار با پایگاه داده (مثلا اینجا فقط insert را گفتم)

 <?php
header('Content-Type: text/html; charset=utf-8');
class PeopleFunctions {

    private $connection;

    
    // constructor
    function __construct() {
        require_once 'DbConnect.php';
        // connecting to database
        $this->connection = new DbConnect();
    }

    // destructor
    function __destruct() {

    }
/******************* add new row and return details *******************/ public function addPeople($name, $family) { $this->connection->connectToDatabase(); $result = mysqli_query($this->connection,"INSERT INTO people(people_name, people_family) VALUES('$name',$family')"); // check for successful store if ($result) { // get people details $pid = mysql_insert_id(); // last inserted id $result = mysqli_query($this->connection,"SELECT * FROM people WHERE people_id = $pid"); mysqli_close($this->connection); // return people details return mysql_fetch_array($result); } else { mysqli_close($this->connection); return false; } } /***********************************************************************/
}

فایل index.php برای مدیریت requestهایی که از سمت برنامه فرستاده میشه.

<?php
header('Content-Type: text/html; charset=utf-8');

/*************** Read Url ****************/
if (isset($_REQUEST['action'])){
    $action = $_REQUEST['action'];
} else {
    echo "Invalid Data";
    exit;
}

require_once 'PeopleFunctions.php';
    $func = new PeopleFunctions();
	
if ($action=="addPeople"){
    $name = $_REQUEST['name'];
    $family = $_REQUEST['family'];
    $func->addPeople($name,$family);
}
/******************************************/

?>

لطفا هرجای کد اشتباهه بهم بگید. و یه سوال مهم اینکه آیا این ساختار کلاسی برای php درسته ؟ ( لازم به ذکر هست توی لینکی که در بالا معرفی کردم کدش کاملا کار میکنه و جواب میده)

 

0 0
به روشهای مختلفی میشه وب سرویس ساخت. یک نمونه هم در آموزشها آمده ، مشاهده کردید ؟ در ضمن به جای request از post استفاده کنید بهتره. (12 سال پیش)
0 0
آموزش ها را کامل دیدم میخوام بدونم این روشی که نوشتم درسته؟ کم و زیاد نداره! (12 سال پیش)
+1 0
روش شما هم خوب است و در واقع راه های رسیدن به خدا بسیار است :) . اما دقت داشته باشید که همه اطلاعات را از mysql_fetch_array خارج نکنید و فیلدهای خاصی را به بیرون بفرستید، چون هم نیاز نیست و هم باعث بیشتر شدن bandwidth مصرفی می شود. (12 سال پیش)
0 0
ممنون استاد. پس در نهایت اون اطلاعاتی که نیاز هست را بجای ;(return mysql_fetch_array($result با روشی که گفتید درون یک آرایه بریزم و JSON خروجی را echo کنم؟ (12 سال پیش)
+1 0
بله درسته. (12 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .