簡體   English   中英

PHP MySQL插入刪除數據

[英]PHP MySQL insert dropping data

好的,這對我來說是新的。 基本上我有一張桌子的文章:

id: int auto increment
title: varchar(200)
description: varchar(1000)
ctext: longtext
chtml: longtext

現在,我使用mysql_query在該表中進行插入:

INSERT INTO articles
(title, description, ctext, chtml)
VALUES
('$title', '$description', '$text', '$html')

所有值均已通過mysql_escape_string()傳遞。

此處的文本和html大小約為50k(所以我不能在此處真正發布完整的查詢)。

現在,這是問題所在:查詢有效。 插入新行。 但是,ctext和chtml列為 這是MySQL 5.0.51a和PHP 5.2.8。 據我所知,沒有任何類型的錯誤。

現在,我將查詢轉儲到/ tmp中的文件中,並使用以下命令運行它:

mysql -u username -p dbname < /tmp/query

一樣。

我將查詢復制到Navicat,並且...有效。

那么到底發生了什么?

一些隨機的想法:

  • 您是否嘗試過控制文本長度,看它是否僅在某一時刻失敗?
  • 您正在建立什么樣的聯系? 哪個司機?
  • 您檢查過連接的編碼了嗎? 可能會發送一些無效字符。
  • 您是否嘗試過使用參數代替mysql_escape_string
  • 您是否嘗試過直接從Navicat的同一文件執行而不是使用復制粘貼? 同樣,這可能與無效字符有關,該無效字符未通過復制粘貼傳遞但已保存在文件中。
  • 只是為了涵蓋我們經常忘記的基礎知識,您如何驗證未插入數據? 我的意思是,您如何可視化它? 您可能會有一個換行符,隱藏了3種可視化方式中的2種的前幾行。 只是一個遠景,但我已經看到了它的發生。

另外 :MySQL連接默認為latin1,您需要使用mysql_query("SET NAMES 'utf8'")來傳輸unicode字符。

我不確定這是否重要,但不建議使用mysql_escape_string並由mysql_real_escape_string代替

您是否嘗試過使用較小的文字?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM