SQL POST hatası neden iPhone'dan özel karakterler

0 Cevap php

Ben bir SQL veritabanı kullanıcı girilen veri gönderen bir iPhone uygulaması var. Bu hataya neden olur, ya da veriyi keser veya özel karakterler kullanıldığında "null" girer. Kesme işareti ve soru işaretleri ve dönemleri ok gibi görünüyor, ama bunun dışında bir şey bu mesajı kesilmiş ya da hiçbir şey yayınlamak neden olur.

Aşağıdaki gibi verileri eklemek için My SQL Query:

mysql_query("INSERT INTO tblQA (intResponseID, intPosterID, dPostDateTime, cCategory, cSubject, cBody) VALUES ($id, $u, NOW(), '$cat', '$sub', '$body');");

Veritabanındaki alan tipi varchar (8000) 'dir. SO, bunu biliyorum bol çünkü karakter sınırlaması kesilme değil. I istimal Harmanlama "latin1_swedish_ci" dir

EDIT: Ben tekrar sınayın. Bu "&" bulunuyor SQL veritabanına yayınlanmıştır zaman o dizeyi kapalı kesiyor. Ben phpMyAdmin eklediğiniz manuall, ben hiçbir sorun ile dize "Test ve bu işe yararsa görünce" ekleyebilirsiniz.

iPhone kodu:

[p setObject:[NSString stringWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://website.com/script.php?user=%@&pass=%@&cat=%@&sub=%@&body=%@",[[p valueForKey:@"user"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[[p valueForKey:@"pass"] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],sport,@"",[[tvQ.text stringByReplacingOccurrencesOfString:@"\n" withString:@" "] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]]] forKey:@"q"];

Ayrıca:

Ben el işareti (&) ile bir dize eklerseniz bu iPhone app görünecektir. Bu çalışmadığını, sadece gönderme fonksiyonu bulunuyor.

Added 3:20p 8/10/10: I've done some additional testing and the INSERT query is working fine. I've created a separate script to take inputted data from a HTML page and inserted it just fine with the "&" symbol in it. Seems I need to take a look at what the iPhone is grabbing as a string and passing to the PHP script.

0 Cevap