'localhost'..." dalam fail konfigurasi aplikasi atau fail konfigurasi modul; Maklumat konfigurasi pangkalan data bebas ditakrifkan dalam fail; 3. Tentukan maklumat sambungan pangkalan data semasa membuat instantiat, dengan sintaks seperti "$User = M('User','other_','mysql://root..."."/> 'localhost'..." dalam fail konfigurasi aplikasi atau fail konfigurasi modul; Maklumat konfigurasi pangkalan data bebas ditakrifkan dalam fail; 3. Tentukan maklumat sambungan pangkalan data semasa membuat instantiat, dengan sintaks seperti "$User = M('User','other_','mysql://root...".">

Rumah >rangka kerja php >ThinkPHP >Bolehkah thinkphp mengkonfigurasi pangkalan data baharu secara berasingan?

Bolehkah thinkphp mengkonfigurasi pangkalan data baharu secara berasingan?

藏色散人
藏色散人asal
2022-12-13 09:24:401692semak imbas

thinkphp boleh mengkonfigurasi pangkalan data baharu secara berasingan Kaedah tetapan ialah: 1. Tambah parameter konfigurasi seperti "'DB_HOST' => 'localhost'..." dalam fail konfigurasi aplikasi atau fail konfigurasi modul; . Tentukan maklumat konfigurasi pangkalan data bebas dalam fail konfigurasi bagi keadaan aplikasi yang berbeza; ..".

Bolehkah thinkphp mengkonfigurasi pangkalan data baharu secara berasingan?

Persekitaran pengendalian tutorial ini: sistem Windows 7, ThinkPHP versi 5, komputer Dell G3.

thinkphp boleh digunakan secara bersendirian Konfigurasikan pangkalan data baharu? pangkalan data

ThinkPHP mempunyai abstraksi terbina dalam Lapisan akses pangkalan data merangkumi operasi pangkalan data yang berbeza Kami hanya perlu menggunakan kelas Db awam untuk beroperasi tanpa menulis kod yang berbeza dan pelaksanaan asas untuk pangkalan data yang berbeza secara automatik pemacu pangkalan data yang sepadan untuk pemprosesan. Pangkalan data termasuk Mysql, SqlServer, PgSQL, Sqlite, Oracle, Ibase, dan Mongo, serta sokongan untuk PDO maklumat mesti dikonfigurasikan. Fail konfigurasi pangkalan data mempunyai pelbagai definisi

1. fail konfigurasi:

Pangkalan Data Jenis ditetapkan oleh parameter DB_TYPE

Berikut ialah tetapan pangkalan data yang disokong sekarang:

<.>Jika DB_TYPE menggunakan jenis PDO, jenis pangkalan data ditentukan oleh konfigurasi DB_DSN

Atau gunakan konfigurasi berikut

//数据库配置信息&#39;DB_TYPE&#39; => &#39;mysql&#39;, // 数据库类型
&#39;DB_HOST&#39; => &#39;localhost&#39;, // 服务器地址
&#39;DB_NAME&#39; => &#39;thinkphp&#39;, // 数据库名
&#39;DB_USER&#39; => &#39;root&#39;, // 用户名
&#39;DB_PWD&#39; => &#39;123456&#39;, // 密码
&#39;DB_PORT&#39; => 3306, // 端口
&#39;DB_PREFIX&#39; => &#39;think_&#39;, // 数据库表前缀
&#39;DB_CHARSET&#39;=> &#39;utf8&#39;, // 字符集

Menggunakan definisi DB_DSN boleh memudahkan parameter konfigurasi format parameter ialah:

Jenis pangkalan data://nama pengguna:kata laluan@pangkalan data Alamat: Port pangkalan data/nama pangkalan data #Set aksara

Tetapan set aksara perlu sah dalam versi 3.2.1 atau di atas. Jika set aksara tidak ditetapkan, lalainya ialah utf8 jika dua parameter konfigurasi berada pada masa yang sama. Jika ia wujud, parameter konfigurasi DB_DSN diutamakan pangkalan data yang diedarkan, konfigurasi DB_DSN tidak disokong buat masa ini Bolehkah thinkphp mengkonfigurasi pangkalan data baharu secara berasingan?

Jika anda menggunakan pemacu PDO, anda mesti mengkonfigurasi **DB_TYPE * dahulu * ialah pdo, dan kemudian parameter lain perlu dikonfigurasikan secara berasingan. contohnya:

Nota: Format konfigurasi DB_DSN bagi mod PDO adalah berbeza, dan tetapan berbeza mengikut jenis pangkalan data yang berbeza Untuk butiran, sila rujuk manual PHP .

&#39;DB_DSN&#39; => &#39;mysql://root:123456@localhost:3306/thinkphp#utf8&#39;
Maklumat sambungan pangkalan data yang ditakrifkan dalam fail konfigurasi biasanya digunakan oleh sistem secara lalai, kerana secara amnya konfigurasi akses pangkalan data aplikasi adalah sama. Dalam kaedah ini, sistem akan memperolehnya secara automatik apabila menyambung ke pangkalan data, dan tidak perlu menyambung secara manual.

Anda boleh menentukan maklumat sambungan pangkalan data yang berbeza untuk setiap modul Jika mod nyahpepijat dihidupkan, anda juga boleh menentukan maklumat konfigurasi pangkalan data bebas dalam fail konfigurasi keadaan aplikasi yang berbeza.

2. Definisi kelas model

Jika atribut sambungan ditakrifkan dalam kelas model, maklumat sambungan pangkalan data yang ditentukan akan digunakan apabila membuat contoh model tersuai dan bukannya konfigurasi Set maklumat sambungan lalai dalam fail biasanya digunakan untuk beberapa jadual data yang terletak dalam pangkalan data lain di luar sambungan pangkalan data semasa, seperti:

Ia juga boleh ditakrifkan dalam mod DSN, seperti:

//PDO连接方式
&#39;DB_TYPE&#39; => &#39;pdo&#39;, // 数据库类型
&#39;DB_USER&#39; => &#39;root&#39;, // 用户名
&#39;DB_PWD&#39; => &#39;&#39;, // 密码
&#39;DB_PREFIX&#39; => &#39;think_&#39;, // 数据库表前缀
&#39;DB_DSN&#39; => &#39;mysql:host=localhost;dbname=thinkphp;charset=UTF-8&#39;

Jika kita telah mengkonfigurasi maklumat sambungan pangkalan data tambahan dalam fail konfigurasi, contohnya:

Kemudian, kita boleh menukar takrifan atribut kelas model kepada:

3. Definisi Instantiation

Selain menentukan maklumat sambungan pangkalan data semasa mentakrifkan model, kami juga boleh menentukan maklumat sambungan pangkalan data semasa membuat seketika sebagai contoh: jika menggunakan model disegerakan oleh kaedah M, ia juga boleh menyokong penghantaran maklumat sambungan pangkalan data yang berbeza Contohnya:

//在模型里单独设置数据库连接信息
namespace Home\ Model;
use Think\ Model;
class UserModel extends Model{
protected $connection = array(
&#39;db_type&#39; => &#39;mysql&#39;,
&#39;db_user&#39; => &#39;root&#39;,
&#39;db_pwd&#39; => &#39;1234&#39;,
&#39;db_host&#39; => &#39;localhost&#39;,
&#39;db_port&#39; => &#39;3306&#39;,
&#39;db_name&#39; => &#39;thinkphp&#39;,
&#39;db_charset&#39; => &#39;utf8&#39;,
);
}

bermaksud membuat instantiating model Pengguna Sambungan adalah ke jadual pengguna_lain pangkalan data demo, dan maklumat sambungan yang digunakan ialah Tiga parameter pertama dikonfigurasikan. Jika kami telah mengkonfigurasi DB_CONFIG2 dalam fail konfigurasi projek, kami juga boleh menggunakan:

//在模型里单独设置数据库连接信息
namespace Home\ Model;
use Think\ Model;
class UserModel extends Model{
//或者使用DSN定义
protected $connection = &#39;mysql://root:1234@localhost:3306/thinkphp#utf8&#39;;
}

Perlu diingatkan bahawa sambungan pangkalan data ThinkPHP adalah malas, jadi ia tidak bersambung ke pangkalan data apabila ia segera , tetapi hanya akan menyambung ke pangkalan data apabila terdapat operasi data sebenar (selain itu, apabila sistem membuat model buat kali pertama, ia akan menyambung secara automatik ke pangkalan data untuk mendapatkan maklumat medan jadual data yang sepadan dengan kelas model yang berkaitan ).

Pembelajaran yang disyorkan: "

Tutorial Video thinkPHP
//数据库配置1
&#39;DB_CONFIG1&#39; => array(
&#39;db_type&#39; => &#39;mysql&#39;,
&#39;db_user&#39; => &#39;root&#39;,
&#39;db_pwd&#39; => &#39;1234&#39;,
&#39;db_host&#39; => &#39;localhost&#39;,
&#39;db_port&#39; => &#39;3306&#39;,
&#39;db_name&#39; => &#39;thinkphp&#39;,
&#39;db_charset&#39;=> &#39;utf8&#39;,
),
//数据库配置2
&#39;DB_CONFIG2&#39; => &#39;mysql://root:1234@localhost:3306/thinkphp#utf8&#39;;
"

Atas ialah kandungan terperinci Bolehkah thinkphp mengkonfigurasi pangkalan data baharu secara berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn