mysql (वर्तमान संस्करण: सर्वर संस्करण: 5.5.44-0 + deb8u1 (डेबियन) के अपग्रेड के बाद अपलोड (स्थानीय) फ़ाइल से डेटा लोड नहीं कर सकता है, फाइलें निहित हैं:mysql_connect --local-infile पैरामीटर
dbconnection.php
<?php
$server = "localhost";
$user = "TheUser";
$pass = "ThePass";
$db_name = "DbName";
$link = mysql_connect($server, $user, $pass);
mysql_select_db($db_name);
mysql_set_charset('utf8', $link);
?>
send2db.php
<?php
include 'dbconnection.php';
mysql_select_db("DbName") or die(mysql_error());
$query = "LOAD DATA LOCAL INFILE '$file' INTO TABLE `T1` FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' ";
mysql_query($query) or die(mysql_error());
?>
त्रुटि का कहना है:
ERROR 1148 (42000): The used command is not allowed with this MySQL version
mysql के अंदर:
SHOW GLOBAL VARIABLES LIKE 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | ON |
+---------------+-------+
1 row in set (0.00 sec)
लेकिन अगर मैं इस तरह से पहुँचने के, फ़ाइलें लोड किया जा सकता है:
mysql --local-infile -p
तो मेरे सवाल है, कर सकते हैं मैं dbconnection.php फाइल में यह विकल्प सेट, मैंने पहले से ही सफलता के बिना कई तरीकों की कोशिश की है, मैं my.cnf कॉन्फ़िगरेशन और कुछ अन्य सामानों के बारे में पोस्ट पढ़ रहा हूं लेकिन मेरे लिए कुछ भी काम नहीं करता है, कोई सुझाव?
धन्यवाद
अद्यतन: मैं दूर पूरे वेब mysqli के कोड बदल रहे हैं, Ufff !!, अच्छी तरह से सुझावों का पालन से जवाब bellow मैं अगले कोड है, लेकिन कोई सफलता नहीं किया, मुझे अभी भी संदेश मिलता है: "इस MySQL संस्करण के साथ प्रयुक्त कमांड की अनुमति नहीं है"। गर्भित फ़ाइलों अगले हैं:
acessdb.php
<?php
$link = new mysqli($server, $user, $pass, $dbname);
?>
<?php include 'acessdb.php';
$link->options(MYSQLI_OPT_LOCAL_INFILE, true);
mysqli_query($link, "LOAD DATA LOCAL INFILE 'upfiles/file.csv' INTO TABLE `T1` FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"'") or die(mysqli_error($link));
$link->options(MYSQLI_OPT_LOCAL_INFILE, false);
?>
कोई सुझाव send2db.php?
फ़ाइल पथ कैसा दिखता है? क्या आप '/' या '\' का उपयोग कर रहे हैं? यह वास्तव में एक फर्क पड़ता है। –
'अपफाइल/$ फ़ाइल', लेकिन जैसा कि मैंने अपडेट के साथ उल्लेख किया है, यह काम करने के लिए बंद कर दिया गया है, i। ई।, यह mysql –
के पिछले संस्करणों के साथ काम कर रहा था ऐसा लगता है कि जैसे ही अद्यतन ने आपके mysql कॉन्फ़िगरेशन में सर्वर/क्लाइंट सेटिंग्स को स्थानीय-infile की अनुमति नहीं दी है। मैंने बस उस अंतिम पंक्ति को पढ़ा जहां आपने कहा था कि यह टर्मिनल में काम करता है। मैं नीचे एक उत्तर प्रदान करने जा रहा हूं, कृपया इसे सही उत्तर के रूप में चिह्नित करें। –