[英]default SELECT field limit in mysql with php?
我們有一個工作流程系統,用於將工作偏移到其他服務器。 工作流程工作數據最近變得非常大(我們習慣了)。 在json編碼數組中存儲高達6MB的數據。
在dev服務器上結合phpmyadmin,我們可以完整地提取LONGBLOB
job_data
字段的內容,並在文本編輯器中查看以確認整個json數組在那里。
當我們嘗試用PHP提取數據時,我們覺得我們正在達到某種默認限制。
查詢沒什么特別的:
SELECT
workflow_ID,
job_script,
job_created_time,
job_data
FROM
workflow
WHERE
job_started_time IS NULL
ORDER BY
job_created_time
ASC
LIMIT 0,1
打印job_data
行時會被截斷。 我們發現問題的例子是db中的4.7mb。
有沒有人有任何其他類似的問題,是否有一個我可能需要增加的php mysql SELECT限制? 我在谷歌或這里找不到任何東西。
在回應上述評論者的幫助下,@ Lashane和@MarcB
我正在使用pdo的答案:
添加到您的PDO __construct選項array \\PDO::MYSQL_ATTR_MAX_BUFFER_SIZE
如gizmola在phpFreaks上找到的:
$this->db_con = new \PDO("mysql:host=$db_hostname;dbname=$db_database",
"$db_username",
"$db_password",
array(
\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
\PDO::MYSQL_ATTR_MAX_BUFFER_SIZE=> 16777216 /* 16mb max output to php from field */
)
);
對於提取,將\\PDO::PARAM_LOB
添加到所需的列(其中$column_number
在我的情況下為4,即OP查詢的job_data
):
$statement->bindColumn($column_number, $lob, \PDO::PARAM_LOB);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.