PDA

View Full Version : سوال: برای echo کردن از دیتابیس از کدام تابع استفاده کنم؟



amin7x
چهارشنبه 20 دی 1391, 11:02 صبح
سلام دوستان

من یک سوال داشتم من اگه بخوام متنی رو از دیتابیس بکشم بیرون از کدام تابع استفاده کنم؟ (امنیت کدام بیشتره؟)

mysql_fetch_assoc یا mysql_fetch_array

اگه تابع بهتری سراغ دارید به من بگید (البته با مثال).

ممنون

mamali-mohammad
چهارشنبه 20 دی 1391, 11:36 صبح
بستگی داره به کارت
من شخصا از array استفاده میکنم اما برای حلقه بعدی حتما خالیش میکنم که قاطی نکنه
البته فکر کنم assoc برای یه دفعه باشه array کلا نگه میداره ( البته مطمئن نیستم ! )

amin7x
چهارشنبه 20 دی 1391, 13:01 عصر
بستگی داره به کارت
من شخصا از array استفاده میکنم اما برای حلقه بعدی حتما خالیش میکنم که قاطی نکنه
البته فکر کنم assoc برای یه دفعه باشه array کلا نگه میداره ( البته مطمئن نیستم ! )

چه طوری خالی میکنید؟

Tarragon
چهارشنبه 20 دی 1391, 13:05 عصر
فکر کنم با unset
نمی دونم کجا خوندم نوشته بود از assoc بجای array استفاده کنید!
حالا نمی دونم درست باشه یا نه.

soroush.r70
چهارشنبه 20 دی 1391, 14:31 عصر
assoc بهینه تر از array هست

rezaonline.net
چهارشنبه 20 دی 1391, 14:45 عصر
assoc همون array هست منتها اون خانه اولی که همیشه خالی هست رو نداره .
من پیشنهادم به شما mysql_fetch_objectهست .

Tarragon
چهارشنبه 20 دی 1391, 14:54 عصر
اینو تو php.net دیدم گفتم شاید بدرد بخوره:

SELECT * FROM bench... (mysql_fetch_object)
Query time: 5.40725040436
Fetching time: 16.2730708122 (avg: 1.32130565643E-5)
Total time: 21.6803212166

SELECT * FROM bench... (mysql_fetch_array)
Query time: 5.37693023682
Fetching time: 10.3851644993 (avg: 7.48886537552E-6)
Total time: 15.7620947361

SELECT * FROM bench... (mysql_fetch_assoc)
Query time: 5.345921278
Fetching time: 10.6170959473 (avg: 7.64049530029E-6)
Total time: 15.9630172253

rezaonline.net
چهارشنبه 20 دی 1391, 15:10 عصر
همیشه چیزهای خوب خرج داره ، بنز از پیکان گرونتره :)
اینجا هم خرج اضافی همون زمان اضافی هست
زیادی روی این مسائل حساس نباشید ;)

siavashsay
چهارشنبه 20 دی 1391, 17:44 عصر
assoc همون array هست منتها اون خانه اولی که همیشه خالی هست رو نداره .
من پیشنهادم به شما mysql_fetch_objectهست .
بنده هم مثل رضا جان از mysql_fetch_object استفاده میکنم !

Mahmoudzadeh.ir
چهارشنبه 20 دی 1391, 23:37 عصر
من توصیه میکنم از PDO استفاده کنید.این اکستنشن بسیار خوب ، راحت ، کاربردی و امن هست و حتی جلوی بسیاری از sqlinjection هارو میگیره ، قابلیت های زیادی داره از جمله تغییر نوع دیتابیس ، Named parameter و ... اگه یه جستجویی کنید مطالب مفید زیادی پیدا میکنید.




/* Create a connection between layter Model and database according to PDO Extenstion */
$this->connect();

$stmt=$this->pdo->query("CALL Fetch_sec_question('".$Lang."')");
$rows=$stmt->fetchAll(PDO::FETCH_ASSOC);

/* clear object $stmt and disconnect */
$stmt->closeCursor();


بعدا با مقدار $row می تونید به صورت یک آرایه و کار با ارایه های انجمنی اطلاعات رو چاپ کنید و هر کار دیگه ای کنید.
توضیح اینجوری هست که در ابتدا تابع کانکت رو خودم نوشتم که با استفاده از شی pdo به بانک وصل میشه و سپس با استفاده از تابع query مربوط به شی pdo یک کوئری که فراخوانی یک پروسیجر هست رو انجام دادیم.با fetchAll کلیه نتایج بدست امده رو اصطلاحا از بانک واکشی یا همون fetch میکنیم و بقیه هم که واضح هست.