PDA

View Full Version : خواندان از SQL Server



sara.ghavam
یک شنبه 03 مرداد 1395, 14:17 عصر
سلام دوستان گلم خسته نباشید

ما یک دیتابیس Microsoft SQL Server داریم و من میخوام با استاده از Codeigniter کدی بنویسم که به این دیتابیس وصل بشه و اطلاعات اون رو سلکت کنه و داخل یک دیتابیس MySQL اینسرت کنه

لطفا کمکم کنید و بگید که چطوری میتونیم این کارو انجام بدم؟

numberone1
دوشنبه 11 مرداد 1395, 17:01 عصر
با pdo میتونی نوع درایور و بزاری روی sql server
توی خود سایتش مثال داره .

sara.ghavam
سه شنبه 12 مرداد 1395, 15:11 عصر
با pdo میتونی نوع درایور و بزاری روی sql server
توی خود سایتش مثال داره .

سلام ممنونم از پاسخت
این رو میدونستم اما مشکلی که هست اینه که

من باید اطلاعات pdo رو توی config.php ست کنم
خب اونوقت چطوری می تونم به طور هم زمان هم به sql server وصل بشم و هم به mysql اگر راهی هست بگید من فقط میدونم که باید برای اتصال به دیتابیس اطلاعات کانکشن رو توی فایل config.php باید تنظیم کنیم

numberone1
دوشنبه 18 مرداد 1395, 18:01 عصر
سلام ممنونم از پاسخت
این رو میدونستم اما مشکلی که هست اینه که

من باید اطلاعات pdo رو توی config.php ست کنم
خب اونوقت چطوری می تونم به طور هم زمان هم به sql server وصل بشم و هم به mysql اگر راهی هست بگید من فقط میدونم که باید برای اتصال به دیتابیس اطلاعات کانکشن رو توی فایل config.php باید تنظیم کنیم

سلام خواهش میکنم
کانکشن دیتابیس بصورت آرایه نوشته شده
بعد از اتمام آرایه اول میتونی آرایه دوم و بنویسی

sara.ghavam
چهارشنبه 20 مرداد 1395, 02:03 صبح
سلام خواهش میکنم
کانکشن دیتابیس بصورت آرایه نوشته شده
بعد از اتمام آرایه اول میتونی آرایه دوم و بنویسی


سلام کانکشن من الان اینطوری هستش


$db['default']['hostname'] = 'mysql:host=localhost;dbname=sanj;';$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'sanj';
$db['default']['dbdriver'] = 'pdo';
$db['default']['dbprefix'] = 'sj_';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

یعنی باید مثل همین یک آرایه دیگه درست کنم مثلا به نام db2 و بعد کانکشن SQL SERVER رو بسازم بعد هرجا که خواستم استاده کنم بنویسم مثلا


$this->db2->get()

درسته؟؟

numberone1
چهارشنبه 20 مرداد 1395, 03:49 صبح
شما فک فکنم ورژن قدیمی داری استفاده میکنی
الان اینجوری شده


$db['default'] = array(
'dsn' => 'mysql:host=localhost;port=3306;dbname=db',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'db',
'dbdriver' => 'pdo',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);


توی مدل اینجوری میتونی استفاده کنی


$db2 = $this->load->database('db2', TRUE);

$query = $db2->select(*)->get('users');
var_dump($query);

وقتی دیتابیس و لود میکنی پارامتر دوم و مساوی true میزاری یعنی اینکه object این دیتابیس و بهت بده و با اون object کوئری رو انجام بدی

sara.ghavam
چهارشنبه 20 مرداد 1395, 04:31 صبح
ممنونم از پاسخت اما چند تا نکنه
1- من از ورژن 3 استفاده می کنم
2- برای Microsoft SQL Server چه تنظیماتی باید انجام بدم؟
3- باید دو تا تنظیمات داشته باشم؟ چون من میخوام هم به MSQL Server وصل بشم و هم به MySQL
4- در این حالت برای وصل شدن به MYSQL هم باید از کدی که شما گفتی استفاده کنم؟؟ مثلا به شکل زیر


$db = $this->load->database('db', TRUE);

numberone1
جمعه 22 مرداد 1395, 02:52 صبح
خواهش میکنم

2-فقط توی خط dsn کلمه mysql به هر دیتابیسی که میخوای تغییر بده
3-برای اتصال به هر دیتابیس باید یک تنظیمات جدید اضافه کنی . فرقی نمیکنه دیتابیست mysql باشه یا sqlite یا mssql
4-بله


$esme objecte database = $this->load->database('esme database', TRUE);

sara.ghavam
سه شنبه 26 مرداد 1395, 21:15 عصر
خواهش میکنم

2-فقط توی خط dsn کلمه mysql به هر دیتابیسی که میخوای تغییر بده
3-برای اتصال به هر دیتابیس باید یک تنظیمات جدید اضافه کنی . فرقی نمیکنه دیتابیست mysql باشه یا sqlite یا mssql
4-بله


$esme objecte database = $this->load->database('esme database', TRUE);


سلام دوست گلم

من sql server 2014 رو نصب کردم و دیتابیس ساختم

و این تنظیمات رو هم توی فایل database.php انجام دادم


$active_group = 'default';
$active_record = TRUE;


$db['default']['hostname'] = 'mssql:host=localhost;dbname=seda;';
$db['default']['username'] = 'sa';
$db['default']['password'] = '123';
$db['default']['database'] = 'seda';
$db['default']['dbdriver'] = 'pdo';
$db['default']['dbprefix'] = 'sd_';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'Arabic_CI_AS';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;


اما این ارور رو داد بهم


Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\xampp\htdocs\ci2\system\database\drivers\pdo\pd o_driver.php:128 Stack trace: #0 C:\xampp\htdocs\ci2\system\database\drivers\pdo\pd o_driver.php(128): PDO->__construct('mssql:host=loca...', 'sa', '123', Array) #1 C:\xampp\htdocs\ci2\system\database\DB_driver.php( 116): CI_DB_pdo_driver->db_pconnect() #2 C:\xampp\htdocs\ci2\system\database\DB.php(149): CI_DB_driver->initialize() #3 C:\xampp\htdocs\ci2\system\core\Loader.php(347): DB('', NULL) #4 C:\xampp\htdocs\ci2\system\core\Loader.php(1172): CI_Loader->database() #5 C:\xampp\htdocs\ci2\system\core\Loader.php(153): CI_Loader->_ci_autoloader() #6 C:\xampp\htdocs\ci2\system\core\Controller.php(52) : CI_Loader->initialize() #7 C:\xampp\htdocs\ci2\system\core\CodeIgniter.php(30 9): CI_Controller->__construct() #8 C:\xampp\htdocs\ci2\admin\index.php(202): require_once('C:\\xampp\\htdocs...') #9 {main} thrown in C:\xampp\htdocs\ci2\system\database\drivers\pdo\pd o_driver.php on line 128

numberone1
سه شنبه 26 مرداد 1395, 21:28 عصر
سلام دوست گلم

من sql server 2014 رو نصب کردم و دیتابیس ساختم

و این تنظیمات رو هم توی فایل database.php انجام دادم


$active_group = 'default';
$active_record = TRUE;


$db['default']['hostname'] = 'mssql:host=localhost;dbname=seda;';
$db['default']['username'] = 'sa';
$db['default']['password'] = '123';
$db['default']['database'] = 'seda';
$db['default']['dbdriver'] = 'pdo';
$db['default']['dbprefix'] = 'sd_';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'Arabic_CI_AS';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;


اما این ارور رو داد بهم


Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\xampp\htdocs\ci2\system\database\drivers\pdo\pd o_driver.php:128 Stack trace: #0 C:\xampp\htdocs\ci2\system\database\drivers\pdo\pd o_driver.php(128): PDO->__construct('mssql:host=loca...', 'sa', '123', Array) #1 C:\xampp\htdocs\ci2\system\database\DB_driver.php( 116): CI_DB_pdo_driver->db_pconnect() #2 C:\xampp\htdocs\ci2\system\database\DB.php(149): CI_DB_driver->initialize() #3 C:\xampp\htdocs\ci2\system\core\Loader.php(347): DB('', NULL) #4 C:\xampp\htdocs\ci2\system\core\Loader.php(1172): CI_Loader->database() #5 C:\xampp\htdocs\ci2\system\core\Loader.php(153): CI_Loader->_ci_autoloader() #6 C:\xampp\htdocs\ci2\system\core\Controller.php(52) : CI_Loader->initialize() #7 C:\xampp\htdocs\ci2\system\core\CodeIgniter.php(30 9): CI_Controller->__construct() #8 C:\xampp\htdocs\ci2\admin\index.php(202): require_once('C:\\xampp\\htdocs...') #9 {main} thrown in C:\xampp\htdocs\ci2\system\database\drivers\pdo\pd o_driver.php on line 128


سلام دوست عزیز
خوب مشخصه دیگه سرور شما درایور sql و پیدا نمیکنه.
یعنی شما مثلا زمپ نصب کردی باید به زمپ آدرس سرور sql و هم مشخص کنی و پورت و ست کنی و بقیه تنظیمات در غیر اینصورت زمپ از کجا باید بدونه که mssql روی سرور نصبه
ربطی به codeigniter نداره

sara.ghavam
چهارشنبه 27 مرداد 1395, 07:31 صبح
سلام دوست عزیز
خوب مشخصه دیگه سرور شما درایور sql و پیدا نمیکنه.
یعنی شما مثلا زمپ نصب کردی باید به زمپ آدرس سرور sql و هم مشخص کنی و پورت و ست کنی و بقیه تنظیمات در غیر اینصورت زمپ از کجا باید بدونه که mssql روی سرور نصبه
ربطی به codeigniter نداره

خب چطوری باید این کارو انجام بدم؟ میشه کمکم کنید؟؟؟

sara.ghavam
چهارشنبه 27 مرداد 1395, 09:56 صبح
من این دو خط رو به php.ini اضافه کردم فایلها رو هم از اینترنت گرفتم و در پوشه ext اضافه کردم اما باز هم درست نشد لطفا کمکم کنیددددددددد


extension=php_mssql.dll
extension=php_pdo_mssql.dll

sara.ghavam
پنج شنبه 28 مرداد 1395, 11:17 صبح
کسی نیست به دادم برسه؟ خواهش میکنم کمکم کنید وقتم داره تموم میشه

numberone1
پنج شنبه 28 مرداد 1395, 16:55 عصر
من قبلا یه پروژه داشتم php - mssql از مشتری خواستم هاست تهیه کنه و دیتابیس روی هاست ست کردم.
اگر کد هاتون آمادس تنظیمات کانکشن دیتابیس روی هاست زمان زیادی نمیبره.
یه راه دیگه ای هم شاید بتونی امتحان کنی استفاده از sql_srv هست. فایل درایورش توی فایل های سیستم کد ایگنایتر فک کنم باشه میتونی توی قسمت درایور تعریفش کنی و ازش استفاده کنی

ولی در نهایت موقع تحویل پروژه به مشتری همه چیز باید روی هاست درست کار کنه نه لوکال شما. به نظر من بهترین کار همون تنظیم روی هاسته

sara.ghavam
پنج شنبه 28 مرداد 1395, 22:12 عصر
من قبلا یه پروژه داشتم php - mssql از مشتری خواستم هاست تهیه کنه و دیتابیس روی هاست ست کردم.
اگر کد هاتون آمادس تنظیمات کانکشن دیتابیس روی هاست زمان زیادی نمیبره.
یه راه دیگه ای هم شاید بتونی امتحان کنی استفاده از sql_srv هست. فایل درایورش توی فایل های سیستم کد ایگنایتر فک کنم باشه میتونی توی قسمت درایور تعریفش کنی و ازش استفاده کنی

ولی در نهایت موقع تحویل پروژه به مشتری همه چیز باید روی هاست درست کار کنه نه لوکال شما. به نظر من بهترین کار همون تنظیم روی هاسته

ممنونم دوست عزیزم
من همون تنظیمات رو میخواستم وگرنه خب خودم متوجه شدم که باید درایورش رو تعریف کنم
من اصلا قرار نیست این سایت رو روی هاست بذارم این یک سایت برای شبکه داخلیه

sara.ghavam
جمعه 29 مرداد 1395, 22:19 عصر
سلام دوستان من تونستم بالاخره به به sql server متصل بشم خدارو شکر
dll های مربوط به php رو نصب کردم و در php.ini هم تغییرات لازم رو انجام دادم و این تنظیمات رو هم در ci انجام دادم




$active_group = 'default';
$active_record = TRUE;


$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'sa';
$db['default']['password'] = '123';
$db['default']['database'] = 'seda';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = 'sd_';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

اما یک مشکلی که دارم اینه که میخوام به صورت pdo وصل بشم. چی کار باید بکنم؟ لطفا کمکم کنید.

sara.ghavam
شنبه 30 مرداد 1395, 09:40 صبح
سلام بالاخره درست شدش من تونستم با آپدیت codeigniter به ورژن 3.1 مشکل رو کاملا حل کنم البته باید درایورهای مربوط به sqlsrv رو هم اضافه کنید به xampp و اینکه با pdo هم الان میتونم کار کنم

این هم از تنظیمات دیتابیس میذارم براتون


$active_group = 'default';
$query_builder = TRUE;


$db['default'] = array(
'dsn' => 'sqlsrv:host=localhost;dbname=seda;',
'hostname' => 'localhost',
'username' => 'sa',
'password' => '123',
'database' => 'seda',
'dbdriver' => 'sqlsrv',
'dbprefix' => 'sd_',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

در ضمن برای اتصال به sql server از طریق php از این لینک استفاده کنید

http://www.manjustudio.com/2013/01/09/codeigniter-mssql-sqlsrv/

البته من خیلی تحقیق کرده بودم اما موفق نشده بودم، از لطف همه دوستان تشکر میکنم و اینکه این رو برای این نوشتم که در آینده دیگران کارشون راحت تر باشه