क्या एक ही समय में SQL टेबल बनाना और डेटा डालना संभव है?

Nov 28 2020

जब मैं बनाने की मेज हटा दिया है यह काम कर रहा है, लेकिन क्या यह कोड पर ऐसा करना संभव है?

यहाँ कोड है

    $sql = "CREATE TABLE student ( student_id INT, name VARCHAR(20), major VARCHAR(20), PRIMARY KEY(student_id) ) INSERT INTO student VALUE(1, 'Jack', 'biology')"; if ($connect -> query($sql) === TRUE) { echo "New Table Created! <br><br>"; } else { echo "Error : " . $sql . " <br><br>" . $connect -> error . "<br><br>";
    }
    
    echo "Connected Successfully!";

यहाँ त्रुटि है जब मैंने बनाने की मेज को नहीं हटाया था

त्रुटि: सृजन योग्य छात्र (student_id INT, नाम VARCHAR (20), प्रमुख VARCHAR (20), प्राथमिक कुंजी (student_id)); INSERT INTO के छात्र VALUE (2, 'केट', 'समाजशास्त्र')

आपके SQL सिंटैक्स में कोई त्रुटि है; लाइन 8 पर 'INSERT INTO स्टूडेंट वैल्यू (2,' केट ',' सोशियोलॉजी ')' के पास उपयोग करने के लिए सही सिंटैक्स के लिए अपने MariaDB सर्वर संस्करण से मेल खाने वाले मैनुअल की जाँच करें।

जवाब

2 JM7 Nov 28 2020 at 10:22

आपके पास अपने कोड में 2 टाइपो हैं:

  • गुम "?" क्रिएट और INSERT स्टेटमेंट्स के बीच।

  • INSERT कथन VALUES का उपयोग करता है, VALUE का नहीं।

     $sql = "CREATE TABLE student (
         student_id INT,
         name VARCHAR(20),
         major VARCHAR(20),
         PRIMARY KEY(student_id)
     );
    
     INSERT INTO student VALUES (1, 'Jack', 'biology')";
    

उस के अलावा, पहले दस्तावेज़ में उल्लिखित mysqli के कई बयानों और mysqli_multi_query () के लिए आधिकारिक दस्तावेज़ देखें:

API फ़ंक्शन mysqli_query () और mysqli_real_query () सर्वर में बहु प्रश्नों को सक्रिय करने के लिए आवश्यक कनेक्शन ध्वज सेट नहीं करता है। आकस्मिक SQL इंजेक्शन हमलों की संभावना को कम करने के लिए कई बयानों के लिए एक अतिरिक्त एपीआई कॉल का उपयोग किया जाता है।

या आप प्रत्येक क्वेरी को अलग-अलग चलाने के लिए अपना कोड भी बदल सकते हैं।