نمایش نتایج 1 تا 7 از 7

نام تاپیک: ست كردن ديتابيس در application.ini

  1. #1
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    سطل قهوه!!!
    سن
    92
    پست
    354

    Question ست كردن ديتابيس در application.ini

    سلام رفقا
    يه سوال داشتم كه از مشكل ام سرچشمه ميگيره
    من واسه اينكه تنظيمات اتصال به ديتابيس رو توي فايل application.ini ست كنم به اين روش عمل كردم

    [production]
    resources.db.adapter = "pdo_mysql"
    resources.db.params.host = "127.0.0.1"
    resources.db.params.username = ""
    resources.db.params.password = ""
    resources.db.params.dbname = "my_db"
    resources.db.isDefaultTableAdapter = true

    ديتابيس سرور من user & pass نداره
    خب حالا چيزي لازم نيست در جاي ديگه اضاف كنم؟
    يعني بدون هيچ هيچ مشكلي ميتونم Query ست كنم و با ديتابيس كار كنم؟
    چون تا الان اين كار رو انجام دادم ولي هيچ كويري اجرا نميشه!

    مرسي

  2. #2

    نقل قول: ست كردن ديتابيس در application.ini

    نه
    از نظر من که کانفیگ دیگه ای لازم نیست.
    فقط اینم میتونی اضافه کنی که بعدها به مشکلی برنخوری
    resources.db.params.charset="utf8"
    چون تا الان اين كار رو انجام دادم ولي هيچ كويري اجرا نميشه!
    باید ایراد از جای دیگه ای باشه.
    پیغام خطای خاصی؟ کد اجرای کوئری تون مشکلی نداره؟

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    سطل قهوه!!!
    سن
    92
    پست
    354

    نقل قول: ست كردن ديتابيس در application.ini

    مرسي واسه جواب!
    ببين اين مدل من واسه يه جدول هست!
    <?php
    class Model_Bug extends Zend_Db_Table_Abstract
    {
    protected $_name = 'bugs';

    public function createBug($name, $email, $date, $url, $description, $priority, $status)
    {
    // create new row in the bugs table
    $row = $this->createRow();

    //set the row data
    $row->author = $name;
    $row->email = $email;
    $dateObject = new Zend_Date($date);
    $row->date = $dateObject->get(Zend_Date::TIMESTAMP);
    $row->url = $url;
    $row->description = $description;
    $row->priority = $priority;
    $row->status = $status;

    //save the new row
    $row->save();

    // now fetch the id of the row you just created and return it
    $id = $this->_db->lastInsertId();
    return $id;
    }

    و اين هم كنترل من واسه ذخيره:
    <?php

    class BugController extends Zend_Controller_Action
    {

    public function submitAction ()
    {
    $bugReportForm = new Form_BugReportForm();
    $bugReportForm->setAction('/bug/submit');
    $bugReportForm->setMethod('post');
    if ($this->getRequest()->isPost()) {
    if ($bugReportForm->isValid($_POST)) {
    $bugModel = new Model_Bug();
    // if the form is valid then create the new bug
    $result = $bugModel->createBug(
    $bugReportForm->getValue('author'),
    $bugReportForm->getValue('email'),
    $bugReportForm->getValue('date'),
    $bugReportForm->getValue('url'),
    $bugReportForm->getValue('description'),
    $bugReportForm->getValue('priority'),
    $bugReportForm->getValue('status'));
    // if the createBug method returns a result
    // then the bug was successfully created
    if ($result) {
    $this->_forward('confirm');
    }
    }
    }
    $this->view->form = $bugReportForm;
    }

    خب بعد از اجرا شدن كنترلر submit در آخر باس از شرط بگذره كه اگه موفقيت آميز بود به كنترل confirm منتقل ميشه!
    ولي در صورتي كه اين اتفاق نميفته و همچنان در كنترلر submit ميمونم يعني result$ موفقيت آميز نبوده!!

    اصلا من درست استفاده كردم ؟
    كلا وقتي تنظيمات ديتابيس رو توي application.ini ست ميكنيم به چه شكل باس استفاده كرد؟
    مرسي

  4. #4

    نقل قول: ست كردن ديتابيس در application.ini

    در مورد مشکل فعلیتون جواب قطعی ای ندارم. بهتره خط به خط اجرای برنامتون رو کنترل و دیباگ کنید ببینید دقیقا کجا لنگ میزنه.
    اما به نظر میرسه ساختار توصیه شده ی ZF در مورد پروژه های MVC رو رعایت نمی کنید. حالا که به انگلیسی هم علاقه دارید این لینک رو ببینید و صفحات بعدیش رو هم به ترتیب دنبال کنید:
    http://framework.zend.com/manual/en/...e-project.html
    اینم سمپل زند استودیو هستش که همون تئوری ها رو پیاده کرده:
    example.rar
    البته با mysql کار نکرده اما چندان فرقی نمی کنه.
    موفق باشید

  5. #5
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    سطل قهوه!!!
    سن
    92
    پست
    354

    نقل قول: ست كردن ديتابيس در application.ini

    مرسي واسه لينك ها!
    در مورد Example هم تا حالا با زند با SQLite كار نكرده بودم
    جالبه!!

  6. #6

    نقل قول: ست كردن ديتابيس در application.ini

    خط
    $id = $this->_db->lastInsertId();

    رو با این
    $id = $this->getAdapter()->lastInsertId()

    عوض کن. کد شما هربار id=0 رو برمی گردونه
    آخرین ویرایش به وسیله HRezaei : دوشنبه 20 دی 1389 در 01:21 صبح

  7. #7
    کاربر دائمی
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    سطل قهوه!!!
    سن
    92
    پست
    354

    نقل قول: ست كردن ديتابيس در application.ini

    واي چه جالب و خفن
    همين حالا همزمان با جوابت من هم جواب رو فهمديم
    حدس ميزدم بايد مشكل از كتاب باشه
    اين صفحه رو نگاه كن
    http://apress.com/book/errata/1130
    زير فرم ايراد هفتم به همين اشاره كرده!!!
    مرسي زياد!

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •