ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
משה נחמיאסאורח · ·
 

הודעה פורסם: 11/09/2014 - 14:28
נושא ההודעה: שגיאת זיכרון ל-PHP כשניגשים ל-DB אם שולפים את כל השורות

היי,
אני מתכנת עם PHP ומשתמש עבור העבודה מול ה-DB ב-PDO. כאשר אני מריץ שאילתה כדי לדעת כמה שורות יש בטבלה (כדי לעשות עמודים לפי הצורך) אני מקבל את השגיאה הבאה:
קוד:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 84 bytes) in /home/southafr/public_html/blog.php on line 50

בזמן שאני מנסה להריץ שאילתא על טבלה ב-DB שלי אם אני מריץ את השאילתה ושולף את כל השורות מה-DB (כ-70,000 שורות).

כדי לדעת את מספר השורות אני עושה count (לא מצאתי פיתרון טוב יותר) ל-fetchAll והתוצאה היא כמות השורות.
חיפשתי בגוגל קצת לגבי הבעיה ומצאתי שאפשר לעבוד עם PDO::MYSQL_ATTR_USE_BUFFERED_QUERY בתור false אבל זה לא פותר לי את הבעיה, ברגע שאני עושה fetchAll זה יוצר לי את השגיאה הנ"ל. ובלי fetchAll התוצאה של ה-count היא 1.

מה אפשר לעשות (אם כדי לעשות את העימוד או כדי לתקן את הבעיה של הזיכרון)?

כמובן שאם משהו לא ברור אשמח להסביר
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 11/09/2014 - 14:55
נושא ההודעה:

אתה לא עושה את זה ככה. 70,000 רשומות זה המון.
בלי לדעת לעומק באיזה מסד נתונים מדובר, למרות שאני מניח שאתה עם MySQL:

http://www.w3schools.com/sql/sql_func_count.asp
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 11/09/2014 - 15:27
נושא ההודעה:

אוקי, תודה.
זה עובד. (בשיטה שאתה מציע).
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. אורח [משה נחמיאס]
  2. אורח
  3. אורח