اذهب إلى المحتوى
  • 0

ينتج خطا و اعلم انه سينتج ولكن لا يظهر الرساله التي حددتها في الكود"not connected" كما هو في الصورة ارجو الافادة

عمر عبدالوهاب

السؤال

Fatal error: Uncaught mysqli_sql_exception: Unknown database 'stdz' in C:\xampp\htdocs\phpsql\db-connect.php:16 Stack trace: #0 C:\xampp\htdocs\phpsql\db-connect.php(16): mysqli_connect('localhost:4306', 'root', Object(SensitiveParameterValue), 'stdz') #1 {main} thrown in C:\xampp\htdocs\phpsql\db-connect.php on line 16

Screenshot 2023-08-20 110328.png

Screenshot 2023-08-20 110721.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

رسالة الخطأ تخبرك أنه لم يتم التعرف على قاعدة البيانات Unknown database 'stdz'، قم بالتأكد من قاعدة البيانات موجودة بالفعل وإن لم تجدها عليك إنشائها، وأظن أنها كانت لديك باسم std وليس stdz.

وأتفهم ما تريد الوصول إليه، لكن لن يتم عرض الرسالة not connected والصحيح هو استخدام الكود التالي لعرض رسالة Database 'hsubgram' does not exist في حالة لم يتم إيجاد قاعدة بيانات بذلك الاسم :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php
    if(isset($_POST["con"])){
        $servername = 'localhost:3306'; // Hostname only
        $username = 'root';
        $password = '';
        $database = 'hsubgram';

        // Connect to the server
        $conn = mysqli_connect($servername, $username, $password);

        if (!$conn){
            die("Connection failed: " . mysqli_connect_error());
        }

        // Check if the selected database exists
        $db_check_query = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$database'";
        $db_check_result = mysqli_query($conn, $db_check_query);

        if (!$db_check_result) {
            die("Database check failed: " . mysqli_error($conn));
        }

        if (mysqli_num_rows($db_check_result) == 0) {
            die("Database '$database' does not exist.");
        }

        mysqli_close($conn);

        echo "Connected to database: $database";
    }
    ?>
    <form method="POST">
        <center>
            <input type="submit" value="connect" name="con">
        </center>
    </form>
</body>
</html>

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

قاعدة بيانات غير معروفة 'stdz': هذه هي المشكلة الرئيسية.
يحاول البرنامج  الاتصال بقاعدة بيانات MySQL تسمى "stdz" ، ولكن لم يتم التعرف على قاعدة البيانات أو أنها غير موجودة على خادم MySQL.

😄 \ xampp \ htdocs \ phpsql \ db-connect.php: 16: يخبرك هذا السطر بمكان حدوث الخطأ.
في هذه الحالة ، حدث الخطأ في الملف db-connect.php في السطر 16.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

بشكل إفتراضي وضع الأخطاء في دوال mysqli مُعرف على النحو التالي:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
  • MYSQLI_REPORT_ERROR: يرمي رسالة تحذير كلما حدث خطأ. PHP لا يوقف تنفيذ التعليمات البرمجية ، فقط يرسل الرسالة.
  • MYSQLI_REPORT_STRICT: يحول رسائل التحذير هذه إلى mysqli_sql_exception. توقف PHP تمامًا عن تنفيذ التعليمات البرمجية.

يُمكنك إستخدام try ... catch لإلتقاط الإستثناء و عمل شيء ما يناسب ما تريد:

try {
  $con = mysqli_connect("localhost","user","password","my_db");
} catch(Exception $e) {
  echo "Error " . $e->getMessage();
}

أو تغيير وضع الأخطاء إلى MYSQLI_REPORT_OFF، بمعنى لا تقم بعمل تقرير للأخطاء بالشكل التالي:

mysqli_report(MYSQLI_REPORT_OFF);

$con = @mysqli_connect("localhost","user","password","my_db");

if ($con) {
  echo 'connected';
} else {
  echo 'not connected ' . mysqli_connect_error();
}

@ قبل إسم الدالة لمنع التحذيرات من الظهور، حاول عدم إستخدامها و سيظهر تحذير في المتصفح لكن البرنامج لن يتوقف سيواصل التنفيذ.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 17 ساعة قال Mustafa Suleiman:

رسالة الخطأ تخبرك أنه لم يتم التعرف على قاعدة البيانات Unknown database 'stdz'، قم بالتأكد من قاعدة البيانات موجودة بالفعل وإن لم تجدها عليك إنشائها، وأظن أنها كانت لديك باسم std وليس stdz.

وأتفهم ما تريد الوصول إليه، لكن لن يتم عرض الرسالة not connected والصحيح هو استخدام الكود التالي لعرض رسالة Database 'hsubgram' does not exist في حالة لم يتم إيجاد قاعدة بيانات بذلك الاسم :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <?php
    if(isset($_POST["con"])){
        $servername = 'localhost:3306'; // Hostname only
        $username = 'root';
        $password = '';
        $database = 'hsubgram';

        // Connect to the server
        $conn = mysqli_connect($servername, $username, $password);

        if (!$conn){
            die("Connection failed: " . mysqli_connect_error());
        }

        // Check if the selected database exists
        $db_check_query = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '$database'";
        $db_check_result = mysqli_query($conn, $db_check_query);

        if (!$db_check_result) {
            die("Database check failed: " . mysqli_error($conn));
        }

        if (mysqli_num_rows($db_check_result) == 0) {
            die("Database '$database' does not exist.");
        }

        mysqli_close($conn);

        echo "Connected to database: $database";
    }
    ?>
    <form method="POST">
        <center>
            <input type="submit" value="connect" name="con">
        </center>
    </form>
</body>
</html>

 

اشكرك استاذي على مجهودك الطيب لقد تم حل المشكلة 

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...