PHP MySQL insert bırakarak veri

2 Cevap php

Tamam bu benim için yeni bir tanesidir. Temelde bir tablo makaleleri var:

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

Şimdi ben mysql_query bu tabloya bir ekleme yapmak:

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

Tüm değerler) (mysql_escape_string geçti edilmiştir.

Metin ve burada html (yani ben gerçekten tam burada sorgu açamazsınız) boyutu kabaca 50k vardır.

Şimdi, burada sorun: sorgu çalışır. Yeni bir satır eklenir. Ancak CTexT ve chtml sütunlar empty. Bu MySQL 5.0.51a ve PHP 5.2.8 olduğunu. Hiçbir hata bildiğim kadarıyla söyleyebilirim gibi her türlü yetiştirilir.

Şimdi / tmp bir dosyaya dışarı sorgu dökülüyor ile koştu:

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

Same thing.

Ben Navicat içine sorgu kopyalayın ve ... çalışıyor.

Yani yeryüzünde ne oluyor?

2 Cevap

Bazı rasgele düşünceler:

  • Bunu tek bir noktada başarısız olursa metin uzunluğu görmek kontrol denediniz mi?
  • Eğer Ne tür bir bağlantı açılıyor? Hangi sürücü?
  • Eğer bağlantı kodlamasını kontrol ettiniz mi? Bazı geçersiz karakterler içeri gönderildi olabilir
  • Eğer parameters yerine mysql_escape_string kullanarak denediniz mi?
  • Yerine copy-paste kullanarak Navicat aynı dosyadan doğrudan yürütme denediniz mi? Yine, kopyala-yapıştır geçti değil ama dosyasına kaydedilmiş geçersiz bir karakterle ilgili olabilir.
  • Sadece biz sık sık unutmak temellerini kapsayacak şekilde, nasıl veri eklenir olmadığını doğrularım? Yani, nasıl size onu görselleştirmek? Sen görselleştirme 2 3 dışarı araçlarından ilk satırları gizler bir satır sonu olabilir. Sadece uzun bir atış, ama ben ne gördüm.


Addition: MySQL bağlantıları varsayılan latin1 için, size mysql_query("SET NAMES 'utf8'") unicode karakter transfer etmek gibi bir şey kullanmak gerekir.

Ben bu konularda emin değilim, ama mysql_escape_string kalktı ve mysql_real_escape_string tarafından değiştirilir

Eğer küçük metin ile denediniz mi?