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

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...