Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP कोड का उपयोग करके MySQL डेटाबेस में इमेज कैसे अपलोड करें

सबसे पहले, आपको यह जांचना चाहिए कि क्या आपका इमेज कॉलम BLOB टाइप है !

मुझे आपकी SQL तालिका के बारे में कुछ भी पता नहीं है, लेकिन यदि मैं एक उदाहरण के रूप में अपना स्वयं का बनाने का प्रयास करूँगा।

हमें फ़ील्ड मिलीं id (इंट), image (बूँद) और image_name (वर्चर (64))।

तो कोड इस तरह दिखना चाहिए (मान लें कि आईडी हमेशा '1' है और आइए इस mysql_query का उपयोग करें):

$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
    echo "Something went wrong! :("; 
}

आप इसे कई तरह से गलत कर रहे हैं। MySQL फ़ंक्शंस का उपयोग न करें - वे बहिष्कृत हैं! PDO का उपयोग करें या MySQLi . आपको डिस्क पर फ़ाइलों के स्थानों को संग्रहीत करने के बारे में भी सोचना चाहिए। छवियों को संग्रहीत करने के लिए MySQL का उपयोग करना Bad Idea™ माना जाता है। छवियों जैसे बड़े डेटा के साथ SQL तालिका को संभालना समस्याग्रस्त हो सकता है।

साथ ही आपका HTML फॉर्म मानकों से बाहर है। यह इस तरह दिखना चाहिए:

<form action="insert_product.php" method="POST" enctype="multipart/form-data">
    <label>File: </label><input type="file" name="image" />
    <input type="submit" />
</form>

सिडेनोट:

फ़ाइलों के साथ काम करते समय और उन्हें बीएलओबी के रूप में संग्रहीत करते समय, डेटा को mysql_real_escape_string() , अन्यथा इसके परिणामस्वरूप सिंटैक्स त्रुटि होगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. OUTFILE में चुनें का उपयोग करते समय हेडर शामिल करें?

  2. MySQL DatedIFF () बनाम TIMEDIFF ():क्या अंतर है?

  3. mysql -> tbl में डालें (किसी अन्य तालिका से चुनें) और कुछ डिफ़ॉल्ट मान

  4. MySQL, MariaDB और Galera क्लस्टर के लिए बैकअप सर्वोत्तम अभ्यास

  5. MySQL - चयन पर पंक्ति संख्या प्राप्त करें