আমি wpdb
অন্য একটি ডাটাবেসে কানেক্ট করতে চাই । আমি কীভাবে উদাহরণটি তৈরি করব এবং এটি ডাটাবেসের নাম / ব্যবহারকারীর নাম / পাসওয়ার্ডটি পাস করব?
ধন্যবাদ
আমি wpdb
অন্য একটি ডাটাবেসে কানেক্ট করতে চাই । আমি কীভাবে উদাহরণটি তৈরি করব এবং এটি ডাটাবেসের নাম / ব্যবহারকারীর নাম / পাসওয়ার্ডটি পাস করব?
ধন্যবাদ
উত্তর:
হ্যাঁ এটা সম্ভব.
Wpdb অবজেক্টটি কোনও ডাটাবেস অ্যাক্সেস করতে এবং যে কোনও টেবিলকে জিজ্ঞাসা করতে ব্যবহার করা যেতে পারে। একেবারে ওয়ার্ডপ্রেস সম্পর্কিত হতে হবে না, যা খুব আকর্ষণীয়।
সুবিধাটি হ'ল সমস্ত ডাব্লুপিডিবি ক্লাস এবং ফাংশন get_results
ইত্যাদি ব্যবহার করার ক্ষমতা যাতে চাকাটি পুনরায় উদ্ভাবনের প্রয়োজন হয় না।
এখানে কীভাবে:
$mydb = new wpdb('username','password','database','localhost');
$rows = $mydb->get_results("select Name from my_table");
echo "<ul>";
foreach ($rows as $obj) :
echo "<li>".$obj->Name."</li>";
endforeach;
echo "</ul>";
global $wpdb
। তবে firing wpdb-> get_results পদ্ধতিতে গুলি চালানোর আগে আপনাকে wp-load.php অন্তর্ভুক্ত করতে হবে: require_once('/your/wordpress/wp-load.php');
$mydb->set_prefix('wp_');
ওয়ার্ডপ্রেসে দ্বিতীয় ডাটাবেসের সাথে সংযোগ স্থাপন করা সহজ, আপনি কেবল ডাব্লুপিডিবি শ্রেণির একটি নতুন উদাহরণ তৈরি করেন এবং এটি একইভাবে ব্যবহার করুন আপনি স্ট্যান্ডার্ড $ ডাব্লুপিডিবি উদাহরণটি ব্যবহার করবেন যা আমরা সবাই জানি এবং ভালোবাসি।
ধরে নিই যে দ্বিতীয় ডাটাবেসটিতে মূল ডাব্লুপি হিসাবে একই লগইন তথ্য রয়েছে আপনি লগইন তথ্যকে হার্ডকোডিং এড়ানোর জন্য ডাব্লুপি-কনফিগারেশন থেকে পূর্বনির্ধারিত ধ্রুবকগুলি ব্যবহার করতে পারেন।
/**
* Instantiate the wpdb class to connect to your second database, $database_name
*/
$second_db = new wpdb(DB_USER, DB_PASSWORD, $database_name, DB_HOST);
/**
* Use the new database object just like you would use $wpdb
*/
$results = $second_db->get_results($your_query);
$second_db->set_prefix('wp_');
কেউ এ কথা বলেনি তাই আমি ভেবেছিলাম আমি আরও সহজ উপায় যুক্ত করব ..
আপনার ওয়ার্ডপ্রেস ডাটাবেস হিসাবে এটি অ্যাক্সেস করতে আপনার অতিরিক্ত ডাটাবেসটিতে একই ব্যবহারকারী / পাসের বিশদ থাকে আপনি এই জাতীয় সারণির নামের আগে ডাটাবেসের নামটি ব্যবহার করতে পারবেন
$query = $wpdb->prepare('SELECT * FROM dbname.dbtable WHERE 1');
$result = $wpdb->get_results($query);
SELECT
। আপনি ডেটা .োকাতে পারবেন না।
এগুলি কাজ করার সময়, আপনি get_post_custom এবং ওয়ার্ডপ্রেস কোয়েরির মতো "অন্যান্য" কাস্টম বৈশিষ্ট্যগুলি ব্যবহার করার ক্ষমতা হারাবেন। সহজ সমাধানটি হ'ল
$wpdb->select('database_name');
যা ডেটাবেস সিস্টেম-ব্যাপী পরিবর্তন করে (একটি mysql select_db)। ডাটাবেস.টিবেল পদ্ধতিটি যদি আপনি কেবল একটি সাধারণ কোয়েরি করতে চান তবে কাজ করে তবে আপনি যদি অন্য একটি ওয়ার্ডপ্রেস ব্লগ অ্যাক্সেস করতে চান তবে আপনি নির্বাচন করতে পারেন। আপনার কাজ শেষ হয়ে গেলে আপনার এটি পরিবর্তন করতে হবে বা আপনার ব্লগটি অদ্ভুত কাজ করতে পারে।
wp_get_post_terms()
সদ্য নির্বাচিত ডিবি ব্যবহার করবেন বলে মনে হচ্ছে না ?? আমি চেষ্টা করেছি এমন অন্যান্য ফাংশন (যেমন get_post_meta()
, get_posts()
ইত্যাদি) ঠিক ঠিক wp_get_post_terms()
কাজ করে বলে মনে হয় তবে DB_NAME
ডাটাবেসের দিকে কাজ করে বলে মনে হয় । কোন ধারনা?
আমি এখনও মন্তব্য করতে পারি না, তবে আমি ওয়াদিহ এম এর উত্তরে (যা দুর্দান্ত) প্রসারিত করতে চেয়েছিলাম।
ডব্লিউপি এর ডাটাবেস ক্লাসটি জাস্টিন ভিনসেন্টের ইজএসকিউএল এর একটি কাস্টমাইজড সংস্করণ। আপনি যদি ইন্টারফেসটি পছন্দ করেন এবং আপনি এমন কোনও সাইট করতে চান যা ওয়ার্ডপ্রেস-ভিত্তিক নয়, আপনি এটি যাচাই করতে চাইতে পারেন: http://justinvincent.com/ezsql
আমি $wpdb
একটি প্যারেন্ট সাইট থেকে দ্বিতীয় ব্লগ ডাটাবেসের সাথে সংযোগ স্থাপনের জন্য লড়াই করে যাচ্ছিলাম যা দুটি ব্লগ আপডেট করতে হবে। আমি $wpdb->select($dbname, $dbh)
দ্বিতীয় ডাটাবেস নির্বাচন করতাম, তবে আমি এখনও প্রথম ডাটাবেস থেকে ফলাফল পাচ্ছি।
wp_cache_flush()
দ্বিতীয় ডাটাবেসে ডাব্লুপি ফাংশন কল করার আগে আমি ওয়ার্ডপ্রেস ক্যাশে সাফ করার জন্য কল করে সমস্যার সমাধান করেছি ।