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

PHP और MySql में आकार की समस्या अपलोड करें

आपकी sql क्वेरी संभवतः max_allowed_packet आकार जिस स्थिति में सर्वर डिस्कनेक्ट हो जाएगा।
आपमें रुचि हो सकती है
mysqli_stmt ::send_long_data जो आपको विखंडू में max_allowed_packet से अधिक लंबे पैरामीटर भेजने की अनुमति देता है।

अपडेट करें:"मैं इसे कैसे बदल सकता हूं? क्या mysqli का उपयोग करना ही एकमात्र विकल्प है?" स्टार्टअप पैरामीटर) मान केवल-पढ़ने के लिए होगा। संपादित करें:जैसा कि टिप्पणी से पता चलता है कि यदि आपके पास उचित अनुमतियां .PDO/PDO_MYSQL (phpversion 5.3.0 के अनुसार) लगता है नहीं है send_long_data का समर्थन करने के लिए, लेकिन मैं इसके बारे में भी निश्चित नहीं हूं। यह mysqli छोड़ देगा एकमात्र विकल्प के रूप में। मैंने हाल ही में देखा है कि Wez Furlong स्टैक ओवरफ्लो में शामिल हो गए। चूंकि वह पीडीओ कार्यान्वयन के लेखकों में से एक है, वह शायद जानता है (हालांकि उसने pdo_mysql नहीं लिखा था। मॉड्यूल)।

(पूरी तरह से परीक्षण न किए गए और बदसूरत) उदाहरण

// $mysqli = new mysqli(....
$fp = fopen($_FILES['binFile']['tmp_name'], 'rb') or die('!fopen');

//$result = $mysqli->query('SELECT @@max_allowed_packet') or die($mysqli->error);
//$chunkSize = $result->fetch_all();
//$chunkSize = $maxsize[0][0];
$chunkSize = 262144; // 256k chunks

$stmt = $mysqli->prepare('INSERT INTO foo (desc, bindata) VALUES (?,?)') or die($mysqli->error);
// silently truncate the description to 8k
$desc = 8192 < strlen($_POST['txtDescription']) ? $_POST['txtDescription'] : substr($_POST['txtDescription'], 0, 8192);
$stmt->bind_param('sb', $desc, null);

while(!feof($fp)) {
  $chunk = fread($fp, $chunkSize);
  $stmt->send_long_data(1, $chunk) or die('!send_long_data.'.$stmt->error);
}
$result = $stmt->execute();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रैंकिंग पदों को संग्रहीत करने के लिए MySQL अद्यतन विवरण

  2. मैं पायथन के साथ MySQL डेटाबेस में INSERT के बाद आईडी कैसे प्राप्त करूं?

  3. MySQL में एक संयोजित स्ट्रिंग में एक सेपरेटर कैसे जोड़ें - CONCAT_WS ()

  4. MySQL क्वेरी में IF ELSE स्टेटमेंट कैसे लिखें?

  5. मैं दूरस्थ डेटाबेस तक पासवर्ड-रहित पहुँच के लिए रेल को कैसे कॉन्फ़िगर करूँ?