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

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

Gal Shafrir 10-04-07 10:28

[Q] שגיאה בפונקציה
 
אני בונה "מזוודה" של db ואני רוצה לדעת כאשר אני בונה פונקציה כמו connect
שמכילה את האיברים - host,db_user,db_pass,db_name כאשר לא ממלאים אחד מהם
היא תפלוט שגיאה שאני רוצה משהו בנוסח "אנא מלא את אחד האיבירים.."
ולא:
PHP קוד:

WarningMissing argument 4 for connect() 

זה הקוד שלי כרגע:
PHP קוד:

function connect($host,$db_user,$db_pass,$db_name) {

    
$this -> host $host;
    
$this -> db_user $db_user;
    
$this -> db_pass $db_pass;
    
$this -> db_name $db_name;
    
    if (!
$host OR !$db_user OR !$db_pass OR !$db_name) {
        echo 
"<strong>אנא מלא את כל הפרטים כדי שנוכל לזהות את מסד הנתונים</strong>";
    }
    else {
    
$connect = @mysql_connect($host,$db_user,$db_pass);
    
$select = @mysql_select_db($db_name);
    
    if (!
$connect) {
        echo 
"לא ניתן להתחבר למסד הנתונים";
    }
    else {
    if (!
$select) {
        echo 
"שגיאה הרעה בהתחברות למסד הנתונים";
    }
    }
    }


תודה לעוזרים..

-roee- 10-04-07 10:38

PHP קוד:

mysql_connect("localhost","user","pass","dbname") or die('whatever'); 


Daniel 10-04-07 10:40

ציטוט:

נכתב במקור על ידי bigsmoke (פרסם 456178)
PHP קוד:

mysql_connect("localhost","user","pass","dbname") or die('whatever'); 


לא...

תחליף את,
PHP קוד:

function connect($host,$db_user,$db_pass,$db_name) { 

ב-
PHP קוד:

function connect($host "",$db_user "",$db_pass "",$db_name "") { 

מה שעשינו בעצם, זה להגדיר לכולם ערך ברירת מחדל.
אם הוא לא ישים שם כלום-זה ישמר ככלום.

Meir 10-04-07 10:44

אתה יכול לבדוק את הערכים בעזרת הפונקציה func_get_args, דוגמא:

PHP קוד:

<?php

function db($user '',$pass '',$name '')
{
    echo 
count(func_get_args()); // print 2
}

db(567,789);

?>


Gal Shafrir 10-04-07 11:25

תודה רבה, הסתדרתי אפשר לנעול.

Tomer 10-04-07 11:31

ננעל.

ואגב, אל תחזיר echo בתוך פונקציה, תעשה:
PHP קוד:

$output .= "שגיאה"

ובסוף הפונקציה, אחרי כל הבדיקות:
PHP קוד:

return $output

ואז בקריאה לפונקציה:
PHP קוד:

echo connect(x,y,z,w); 

בהצלחה.


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

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