首頁 >資料庫 >mysql教程 >為什麼我不能在 PHP 中使用 LOAD DATA LOCAL INFILE?

為什麼我不能在 PHP 中使用 LOAD DATA LOCAL INFILE?

Susan Sarandon
Susan Sarandon原創
2024-11-04 02:31:02369瀏覽

Why Can't I Use LOAD DATA LOCAL INFILE in PHP?

PHP 中的 LOAD DATA LOCAL INFILE 限制

使用 LOAD DATA LOCAL INFILE 從本地文件載入資料可以是導入資料的便捷功能。但是,在某些情況下,使用者在嘗試透過 PHP 執行時可能會遇到問題。

PHP 對 LOAD DATA LOCAL INFILE 的限制

PHP 限制 LOAD 的使用出於安全考慮,DATA LOCAL INFILE。本機檔案讀取操作被認為是潛在的安全漏洞,這就是 PHP 禁止其執行的原因。預設情況下,PHP 應用程式沒有存取本機檔案所需的權限。

解決問題

要解決此問題,使用者需要啟用本機檔案讀取權限對於 PHP。這可以透過在實例化 PDO 物件時將 PDO::MYSQL_ATTR_LOCAL_INFILE 屬性設為 true 來實現。

程式碼範例

以下程式碼片段示範如何設定PDO ::MYSQL_ATTR_LOCAL_INFILE 屬性:

<code class="php">$conn = new PDO("mysql:host=$server;dbname=$database;", "$user", "$password", array(
    PDO::MYSQL_ATTR_LOCAL_INFILE => true,
));</code>

啟用此屬性後,LODATADATA LOCAL INFILE 操作應該從PHP 應用程式成功執行。

以上是為什麼我不能在 PHP 中使用 LOAD DATA LOCAL INFILE?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn