Sign in to follow this  

Field wont insert into the database

Recommended Posts

game_over    719

Having trouble inserting some data into a database, basically i'm scraping data from an RSS feed and looping through each entry and inserting it into a database but when it gets to the 'content' field it fails, but there is no errors, it just wont insert.. if i remove the content field then it inserts just fine so i think thats the culprit.

$RSS_DOC = simpleXML_load_file($feed_url);

foreach($RSS_DOC->channel->item as $RSSitem) {

	$content = $RSSitem->description;

	$item_insert_sql = "INSERT INTO default_posts(content) VALUES ('$content')";

	$insert_item = mysql_query($item_insert_sql, $db);


$RSSitem->description would be:

<description><![CDATA[Madonna celebrated Yom Kippur in New York City on Tuesday (25.09.12). <BR>
The 'Celebration' singer is a devotee of Jewish offshoot Kabbalah and joined with other followers of the religion to celebrate the Day of Atonement, the holiest day in the calendar for Jewish people.<BR>
Madonna, 54, arrived at the city's Park Avenue Armory wearing a bright purple sweat suit with the number 86 on them and a hat with the word 'Vogue' written on it. <BR>
A source told the New York Post newspaper: "Madonna was the last to arrive, and it seemed like they were holding up the ceremony to wait for her. <BR>
"She came through a back entrance with her daughter, Lourdes, and was seated in the front row. Once she was seated, it could begin. All the men were in white but Madonna had a loud track suit on. Also there was her younger boyfriend [Brahim Zaibat], who arrived wearing cream." <BR>
While her entrance may have caused a stir, the 'Hung Up' singer certainly focused during the service, and appeared oblivious to those around her, including fashion designer Donna Karan, who was seated nearby. <BR>
The witness added: "[Madonna] definitely set herself apart from everyone else. She is like the queen of Kabbalah."<BR>
A statement on the Kabbalah website explains the religious day's significance, saying "[During] Yom Kippur, we sit on the throne with Binah and remove the fog in our lives for the entire year to come." <BR>
Earlier this week, Madonna was forced to clarify comments she made at a concert on Monday (24.09.12) in Washington, where she referred to the US president as a "black Muslim," despite him being openly Christian.<BR>
Madonna said she was "being ironic," adding: "Yes, I know Obama is not a Muslim, though I know that plenty of people in this country think he is."]]></description>

if i $echo description; it prints correct so i know it's pulling the data but why wont it go into to the DB? the $content field is set to LONGTEXT.

Does it have anything to do with <![CDATA[ ?

Any suggestions?

sorry about double post neowin borked

Share this post

Link to post
Share on other sites
Phouchg    2,050

You have forgotten the rule zero - to escape text data before passing to MySQL. Your query becomes malformed like this:

INSERT INTO default_posts(content) VALUES ('<description><![CDATA[Madonna celebrated Yom Kippur in New York City on Tuesday (25.09.12). <BR> The ');

SQL thinks your text data ends at the first single quote it sees. However, it then finds more text that totally isn't valid SQL statement. And so INSERT fails. Of course, if you don't check for errors, it won't show any.

Solution (partly):

A) $content = mysql_real_escape_string($RSSitem->description);

B) Use mysqli and its parameter binding/binary transfer. Escape text data anyway (with mysqli_real_escape_string(), accordingly) - to avoid problems outputting it later.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.