הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   שאלה - מחלקות (https://hosts.co.il/forums/showthread.php?t=50067)

phpyo 18-07-07 15:50

שאלה - מחלקות
 
שלום

בניתי מחלקה לטיפול בשאילתות SQL.
שאלתי היא, האם בכל פעם שאני רוצה להשתמש בפעולת מסד אני צריך ליצור מופע של המחלקה עם הארגומנטים הדרושים?
האם ישנה דרך מהירה יותר?

תודה!

4ior 18-07-07 16:53

תיצור את המופע בדף של המחלקה.
זאת אומרת-תקרא למחלקה באותו דף ואז כל פעם שאתה רוצה להשתמש במחלקה פשוט תעשה אינלוד לדף..(עדיף שתעשה את האינקלוד פעם אחת בדף global או config)

phpyo 18-07-07 20:28

אבל כל פעם אני רוצה לעשות מופע אחר.
בניתי פונקציה במחלקה שמקבלת כארגמונט את השורה להרצה ב-sql ומבצעת אותה, כלומר כל פעם נוצר מופע אחר כי הפעולה הרצויה שונה בכל פעם.

Rom 18-07-07 21:18

אז אל תעשה ככה,
תעשה שכדי להריץ פקודה בSQL פונקציה מבצעת אותה ולא המחלקה עצמה, הבנת?

phpyo 18-07-07 21:20

מה הכוונה? פונקציה שבתוך המחלקה?

Rom 18-07-07 21:30

כן

Eran-s 18-07-07 23:02

תביא את המחלקה כי אני לא ממש בטוח שהבנתי אותך

phpyo 18-07-07 23:41

PHP קוד:

<?php

/***************************************************************

    Name : classes.php
    Description: Includes several important classes
    
***************************************************************/

    
include("constants.php");


/*****************************************************************

|+| name { class sql }
|+| the sql class is about to handle details that have connected to sql

******************************************************************/
    
    
class sql
    
{

        var 
$sql_function;    // 'INSERT','SELECT....
        
var $args;        // db details or table names
        
var $addition;        // 'WHERE'.....


        
function sql($sql_function,$args,$addition)
        {
            
$this->sql_function $sql_function;
            
$this->args        $args;
            
$this->addition        $addition;
        }
        
            
//The following function is a typical mysql db connection

        
function connect()
        {
            
$db_d      explode(",",$this->args);
            
$server  $db_d[0];
            
$username$db_d[1];
            
$password$db_d[2];
            
$db_name $db_d[3];

            
mysql_connect($server,$username,$password);
            
mysql_select_db($db_name);
                
        }
        

        function 
sql_ord()
        {

            
$query mysql_query($this->sql_function) or die(mysql_error());            
            
        }
            
            
        
    }


    
$connect = new sql("","localhost,root,,bla","");
    
$connect->connect();

    
$sql "INSERT INTO `".MAIN_TABLE."` VALUES('a','b','c') ";
    
$insert  = new sql($sql,"","");
    
$insert->sql_ord();

?>


הנה המחלקה.
המופע הראשון מבצע את ההתחברות למסד.
אשמח גם לקבל טיפים לשיפור בכלליות.

תודה!!!

Eran-s 19-07-07 00:10

בשביל מה להכניס למשתנה מחלקה את השאילתה?
תכניס כפרמטר, באתחול תעשה התחברות למסד

phpyo 19-07-07 00:38

לא הבנתי מילה ממך, אשמח להסבר :)


כל הזמנים הם GMT +2. הזמן כעת הוא 15:43.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ