মাইএসকিউএল: কোন ডাটাবেস নির্বাচন করা হয়েছে তা নির্ধারণ করুন?


242

mysql_select_dbএকটি ডাটাবেস দখল করার জন্য ফোন করার পরে , বর্তমানে নির্বাচিত ডাটাবেসের নাম আউটপুট দেওয়ার কোনও উপায় আছে কি? এটি খুব বেসিক বলে মনে হচ্ছে তবে আমি php.net বা স্ট্যাকওভারফ্লোতে কিছু খুঁজে পাইনি (সমস্ত ফলাফল "কোনও ডাটাবেস নির্বাচিত নয়"))

উত্তর:


354

কেবল mysql_query (বা mysqli_query, আরও ভাল, বা PDO ব্যবহার করুন, সর্বোপরি) ব্যবহার করুন:

SELECT DATABASE() FROM DUAL;

সংযোজন:

এর FROM DUALমধ্যে অন্তর্ভুক্ত করা উচিত কি না তা নিয়ে অনেক আলোচনা রয়েছে । প্রযুক্তিগত স্তরে, এটি ওরাকল থেকে একটি হোল্ডওভার এবং নিরাপদে সরানো যেতে পারে। আপনি যদি প্রবণতা বোধ করেন তবে পরিবর্তে নিম্নলিখিতটি ব্যবহার করতে পারেন:

SELECT DATABASE();

তাই বলা হয়, এটা সম্ভবত নোট কাছে গুরুত্বপূর্ণ হয় যে FROM DUALআসলে নেই না কিছু, এটি বৈধ মাইএসকিউএল সিনট্যাক্স হয়। একটি একক লাইন শর্তসাপেক্ষ জাভাস্ক্রিপ্ট এছাড়াও নেই ধনুর্বন্ধনী সহ কঠোর দৃষ্টিকোণ থেকে কিছু করতে , কিন্তু এটি এখনও একটি বৈধ অভ্যাস।


9
ডুয়াল হল একটি ওরাকল টেবিল, এটি মাইএসকিউএলে নেওয়া হয়েছিল। এটি অপারেশনগুলির জন্য একটি ডামি টেবিল যা সত্যিকারের টেবিলের প্রয়োজন নেই। en.wikipedia.org/wiki/DUAL_table
জানুয়ারী Thomä

11
@ ডিজিটালপ্রিসিশন এটি ওরাকলকে নিয়ে অনেক কাজ করেছি এই বিষয়টি থেকে একটি হোল্ডওভার। ওরাকল যদি না তা আপনি নির্বাচন করার অনুমতি দেয় না থেকে কিছু, তাই একটি বিশেষ টেবিল "দ্বৈত" যার মধ্যে শুধুমাত্র একটি সেল রয়েছে নামক নেই। আপনি এটি বাদ দিতে পারেন।
cwallenpoole

1
সম্ভবত উত্তর উত্তরগুলির জন্য বিদ্যমান উত্তরটি রেখে এটি সম্পাদনা করা উচিত SELECT DATABASE();তবে "প্রকৃত" উত্তর হিসাবে যুক্ত করা উচিত।
ব্যবহারকারী

@ জানটহোম - এর মানে কি আমি ডুয়াল টেবিলে কোনও জিজ্ঞাসা করতে পারি?
পারদীপ জৈন

1
@ পারদ্বীপ জেইন যে আমার দক্ষতার ক্ষেত্রের বাইরে এটি সম্ভবত উত্তর দেয় ক্লওয়ালেনপুল।
জানু থম

92
SELECT DATABASE();

PS আমি @ cwallenpoole এর উত্তরটি পরিবর্তন করার স্বাধীনতা নিতে চাইনি এটি এই প্রতিস্থাপন করতে যে এটি একটি মাইএসকিউএল প্রশ্ন এবং একটি ওরাকল প্রশ্ন নয় এবং এটির দরকার নেই DUAL


5
পুরানো অভ্যাস দূর করা কঠিন. আমি এখনও মাঝে মাঝে "
ডুয়াল

5
হাঁ। আমি ২০১১ সাল থেকে ওরাকল স্পর্শ না
করেও ডুয়াল

9
এটি আমি আবার ... এখনও এটি চিন্তা।
cwallenpoole

2
আপনি কি এখনও এটি ভাবছেন?
ফারহান.কে

4
@ কেয়ালেনপুল কেমন আছেন এখন?
নর্ডল

47

বর্তমান ডাটাবেস এবং বর্তমান ব্যবহারকারীর সম্পর্কে জানতে আপনি সর্বদা STATUS কমান্ডটি ব্যবহার করতে পারেন

এখানে চিত্র বর্ণনা লিখুন


যদিও উপরের আউটপুটটিতে আমার সিস্টেমে প্রতিফলিত হয়নি, এটি টিসিপি বন্দরটিও দেখায় যা আমার পক্ষে কার্যকর যেহেতু আমি মাইএসকিএলডি_মুলটি চালাচ্ছি এবং আমি নিজেকে মনে করিয়ে দিতে চাই যে আমি কোন উদাহরণের সাথে কথা বলছি।
জেফ

9

Http://www.php.net/manual/de/function.mysql-db-name.php এর মন্তব্যে আমি এরিকপ% বিগফুট.কম থেকে এটি পেয়েছি:

আপনার যদি কেবলমাত্র বর্তমান ডাটাবেসের নাম প্রয়োজন হয়, আপনি মাইএসকিউএল এর নির্বাচন করুন ডেটাবেস () কমান্ডটি ব্যবহার করতে পারেন:

<?php
function mysql_current_db() {
    $r = mysql_query("SELECT DATABASE()") or die(mysql_error());
    return mysql_result($r,0);
}
?>

1
কারণ ওপি একটি পিএইচপি ফাংশন "mysql_select_db" ব্যবহার করেছে এবং পিএইচপি চেয়েছে। আপনি আসলে প্রশ্নটি পড়েছেন?
জান Thomä

1
ধন্যবাদ, হ্যাঁ আমি প্রথমে পিএইচপি-নির্দিষ্ট উত্তর চেয়েছিলাম যদি এর মতো কোনও পদ্ধতি mysql_current_dbবা কিছু ছিল। কেউ এটিকে সম্পাদনা করে শিরোনাম এবং ট্যাগগুলি থেকে "পিএইচপি" সরাতে
এন্ড্রুভেবার

3
@mysql_result(mysql_query("SELECT DATABASE();"),0)

যদি কোনও ডাটাবেস নির্বাচিত না হয় বা কোনও সংযোগ NULLনা থাকে তবে তা অন্যথায় নির্বাচিত ডাটাবেসের নাম দেয়।


2

সামান্য অফ-টপিক (পিএইচপি পরিবর্তে সিএলআই ব্যবহার করে), তবে এখনও জেনে রাখা মূল্যবান: নীচের যে কোনওটি ব্যবহার করে আপনি ডিফল্ট ডাটাবেস প্রদর্শন করার জন্য প্রম্পটটি সেট করতে পারেন

mysql --prompt='\d> '
export MYSQL_PS1='\d> '

বা একবার ভিতরে

prompt \d>\_
\R \d>\_

1

SELECT DATABASE() পিএইচপিএমআইএডমিনে কাজ করেছেন।


3
এটি বিদ্যমান উত্তরগুলির কম-বেশি কেবল পুনরাবৃত্তি।
পাং

1
যে কোনও বৈধ উত্তরের জন্য একটি বৈধ মন্তব্য হতে পারে :)
পারদীপ জৈন

1

নির্দিষ্ট শব্দ দিয়ে ডাটাবেস ফিল্টার করার জন্য অন্য উপায়।

SHOW DATABASES WHERE `Database` LIKE '<yourDatabasePrefixHere>%'
or
SHOW DATABASES LIKE '<yourDatabasePrefixHere>%';

উদাহরণ:

SHOW DATABASES WHERE `Database` LIKE 'foobar%'
foobar_animal
foobar_humans_gender
foobar_objects
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.