หลังจากการโทรmysql_select_db
เพื่อคว้าฐานข้อมูลมีวิธีใดที่จะแสดงผลชื่อฐานข้อมูลที่เลือกไว้ในภายหลัง? ดูเหมือนว่าพื้นฐานมาก แต่ฉันไม่พบอะไรเลยใน php.net หรือ stackoverflow (ผลลัพธ์ทั้งหมดมีไว้สำหรับ "ไม่ได้เลือกฐานข้อมูล")
หลังจากการโทรmysql_select_db
เพื่อคว้าฐานข้อมูลมีวิธีใดที่จะแสดงผลชื่อฐานข้อมูลที่เลือกไว้ในภายหลัง? ดูเหมือนว่าพื้นฐานมาก แต่ฉันไม่พบอะไรเลยใน php.net หรือ stackoverflow (ผลลัพธ์ทั้งหมดมีไว้สำหรับ "ไม่ได้เลือกฐานข้อมูล")
คำตอบ:
เพียงใช้ mysql_query (หรือ mysqli_query ดียิ่งขึ้นหรือใช้ PDO ที่ดีที่สุดของทั้งหมด) ด้วย:
SELECT DATABASE() FROM DUAL;
มีการถกเถียงกันมากว่าFROM DUAL
ควรรวมอยู่ในสิ่งนี้หรือไม่ ในระดับเทคนิคมันเป็นโฮลด์จาก Oracle และสามารถลบออกได้อย่างปลอดภัย หากคุณมีแนวโน้มคุณสามารถใช้สิ่งต่อไปนี้แทน:
SELECT DATABASE();
อาจกล่าวได้ว่าเป็นสิ่งสำคัญที่ต้องทราบว่าในขณะที่FROM DUAL
ไม่ได้ทำอะไรเลยมันเป็นไวยากรณ์ของ MySQL ที่ถูกต้อง จากมุมมองที่เข้มงวดรวมถึงการจัดฟันในเงื่อนไขบรรทัดเดียวใน JavaScript ก็ไม่ได้ทำอะไรแต่มันก็ยังเป็นวิธีปฏิบัติที่ถูกต้อง
SELECT DATABASE();
เป็นคำตอบ "จริง"
SELECT DATABASE();
PS ผมไม่ได้ต้องการที่จะใช้เสรีภาพในการปรับเปลี่ยน @ คำตอบ cwallenpoole ที่จะสะท้อนให้เห็นถึงความจริงที่ว่านี้เป็นคำถามที่ MySQL และไม่ได้เป็นคำถามที่ Oracle DUAL
และไม่จำเป็นต้อง
ในความคิดเห็นของhttp://www.php.net/manual/de/function.mysql-db-name.phpฉันพบสิ่งนี้จาก ericpp% bigfoot.com:
หากคุณต้องการชื่อฐานข้อมูลปัจจุบันคุณสามารถใช้คำสั่ง SELECT ฐานข้อมูล () ของ MySQL:
<?php
function mysql_current_db() {
$r = mysql_query("SELECT DATABASE()") or die(mysql_error());
return mysql_result($r,0);
}
?>
mysql_current_db
หรืออะไร บางคนแก้ไขเพื่อลบ "php" จากชื่อและแท็ก
@mysql_result(mysql_query("SELECT DATABASE();"),0)
หากไม่ได้เลือกฐานข้อมูลหรือไม่มีการเชื่อมต่อจะส่งคืนNULL
ชื่ออื่นของฐานข้อมูลที่เลือก
เล็กน้อยนอกหัวข้อ (ใช้ CLI แทน PHP) แต่ก็ยังน่ารู้: คุณสามารถตั้งค่าที่พรอมต์เพื่อแสดงฐานข้อมูลเริ่มต้นโดยใช้สิ่งต่อไปนี้
mysql --prompt='\d> '
export MYSQL_PS1='\d> '
หรือครั้งเดียวภายใน
prompt \d>\_
\R \d>\_
SELECT DATABASE()
ทำงานใน PHPMyAdmin
อีกวิธีในการกรองฐานข้อมูลด้วยคำเฉพาะ
SHOW DATABASES WHERE `Database` LIKE '<yourDatabasePrefixHere>%'
or
SHOW DATABASES LIKE '<yourDatabasePrefixHere>%';
ตัวอย่าง:
SHOW DATABASES WHERE `Database` LIKE 'foobar%'
foobar_animal
foobar_humans_gender
foobar_objects