2010-08-06 4 views
0

Je veux stocker plus de 1000 caractères dans la base de données, j'utilise la base de données MySQL.la valeur n'est pas insérée dans db

Lorsque j'insère 50 à 100 caractères, le code s'exécute correctement. Mais quand j'insère 1000 caractères, il n'est pas inséré. Cela ne donne pas non plus d'erreur.

Lorsque j'utilise une requête d'insertion similaire dans phpMyAdmin, la requête s'exécute correctement. c'est la requête, deux premiers champs sont varchar & le dernier champ est LONGTEXT:

INSERT INTO news (headline,date,discription) 
VALUES ("hi","date","A crumbling pitch and some resurgent Indian bowling have set up a gripping deciding Test with the series lead threatening to slip out of the hosts' grasp. India had snuck ahead at the end of the third day, but were dominant by lunch on the fourth as Pragyan Ojha and Amit Mishra ran through the Sri Lankan batting. Thilan Samaraweera, the centurion from the first innings, held firm and is key to Sri Lanka's fortunes as they try to build a lead that is competitive enough to give their spinners a chance. ") 

Cette course avec succès dans phpMyAdmin

Mais lorsque je tente de l'exécuter en PHP, il ne peut pas fonctionner .

Voici le code PHP:

$insert = "INSERT INTO news (headline,date,discription) 
VALUES ('".$_POST['headline']."','".$_POST['date5']."','".$_POST['discription']."')"; 
$add_news = mysql_query($insert); 

& ce code est utilisé dans la balise

<textarea rows="2" cols="2" style="overflow: scroll; height: 90px; width: 635px;" name="discription"></textarea> 

Répondre

2

Utilisez la fonction mysql_real_escape_string avant vos variables de chaîne par exemple:

mysql_real_escape_string($_POST['discription']) 

Cela pourrait être le plus probable parce que le texte contient des guillemets simples qui devraient être esc aped.

mysql_real_escape_string - Protège caractères spéciaux dans une chaîne pour une utilisation dans une instruction SQL

Votre code devrait ressembler à ceci:

$headline = mysql_real_escape_string($_POST['headline']); 
$description= mysql_real_escape_string($_POST['discription']); 
$date= mysql_real_escape_string($_POST['date5']); 

$insert = "INSERT INTO news (headline,date,discription) VALUES ('".$headline."','".$date."','".$description."')"; 
$add_news = mysql_query($insert) or die(mysql_error()); 

Notez que l'ajout de or die(mysql_error() à la fin , cela vous dira s'il y a une erreur dans la requête elle-même.

+0

hey merci son travail merci beaucoup –

+0

@ Pratikg88: Vous êtes les bienvenus ... – Sarfraz

+0

Assurez-vous également que vous attrapez des erreurs en quelque sorte, parce que j'ai vu (du Sri Lanka) mot dans votre requête, et si vous ne l'avez pas échapper, il serait certainement donner une erreur. – Centurion