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

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

SniR-S 04-05-10 19:31

הרצת שאילתות בצורה מסודרת
 
איך אתם מריצים מספר / כמה שאילותות ?
כי זה נראה לי קצת מוזר כל פעם לכתוב mysql_query
לכל שאילתא, אני יודע שיש אופציות שונות להריץ שאילתות מרובות
בצורה מסודרת יותר.

כמו מערך, לדוגמא
PHP קוד:

$queries = array("INSERT INTO .......",
    
"INSERT INTO .......",
    
"INSERT INTO .......",
    
"INSERT INTO .......",
    
"INSERT INTO .......",
);

mysql_query($queries); 

או שאני אמור לעבוד עם foreach ? ככה
PHP קוד:

$queries = array("INSERT INTO .......",
    
"INSERT INTO .......",
    
"INSERT INTO .......",
    
"INSERT INTO .......",
    
"INSERT INTO .......",
);

foreach (
$queries as $query) {
    
mysql_query($query);


זה אמור לעבוד לא ?

benb 05-05-10 10:36

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

קוד:

INSERT INTO customers(cust_name,
  cust_address,
  cust_city,
  cust_state,
  cust_zip,
  cust_country)
VALUES(
        'Pep E. LaPew',
        '100 Main Street',
        'Los Angeles',
        'CA',
        '90046',
        'USA'
    ),
      (
        'M. Martian',
        '42 Galaxy Way',
        'New York',
        'NY',
        '11213',
        'USA'
  );

ואז אתה מריץ אותה פעם אחת כמו בדוגמא הראשונה שלך, בלי foreach

SniR-S 05-05-10 18:15

אני יודע, אבל נניח שיש לי שאילתות של כמה טבלאות ..

benb 05-05-10 18:42

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

קוד:

BEGIN
  START TRANSACTION;
  INSERT INTO a VALUES (NULL, input_a);
  INSERT INTO b VALUES (NULL, last_insert_id(), input_b);
  COMMIT;
END;

צריך למצוא את הסינטקס הנכון ל PHP כי זה סינטקס שמריצים ב SQL

SniR-S 05-05-10 18:46

אוקי תודה !


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

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