Hoe een ' teken opslaan in de database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees van Norde

Kees van Norde

17/06/2014 21:31:59
Quote Anchor link
Hoi,

Ik probeer een ' teken op te slaan in de database maar dan krijg ik de volgende foutmelding:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/mijnuser/domains/blablabla

De code die dat veroorzaakt is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
            echo "<font color=green>Inserting new item..</font><br/>";
            $item_insert_sql = "INSERT INTO e107_news set news_title = '$currentItem->title', news_body = '$currentItem->description$bodytotaal', news_datestamp = '$currentItem->pubDate_t', news_author = '1', news_category = '1', news_allow_comments = '0', news_start = '0', news_end = '0', news_class = '0', news_render_type = '0', news_comment_total = '0', news_sticky = '0'";
            $insert_item = mysql_query($item_insert_sql, $db);

Het is een cron waarbij ik een rss ophaal en vervolgens opsla in de database.
Als er geen ' teken in voorkomt gaat het goed, maar met ' gaat het niet goed.
Nu kan ik het wel omzeilen door deze code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$vowels = array("'");
$currentItem->title = str_replace($vowels, "", $currentItem->title);
$currentItem->description = str_replace($vowels, "", $currentItem->description);

Zo krijg ik geen foutmelding meer maar zo wordt de ' ook niet opgeslagen.
Mocht er dus bijv. een woord auto's inzitten wordt het autos.

Iemand enig idee hoe ik de code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
            $item_insert_sql = "INSERT INTO e107_news set news_title = '$currentItem->title', news_body = '$currentItem->description$bodytotaal', news_datestamp = '$currentItem->pubDate_t', news_author = '1', news_category = '1', news_allow_comments = '0', news_start = '0', news_end = '0', news_class = '0', news_render_type = '0', news_comment_total = '0', news_sticky = '0'";

zo moet aanpassen dat een ' geen probleem meer is?

Gr. Kees.
 
PHP hulp

PHP hulp

19/12/2024 16:23:40
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/06/2014 22:08:57
Quote Anchor link
Gebruik mysql(i)_real_escape_string()
 
Kees van Norde

Kees van Norde

17/06/2014 22:14:42
Quote Anchor link
En hoe gebruik ik dat met bovenstaande code zo ongeveer :P
 
- Ariën  -
Beheerder

- Ariën -

17/06/2014 22:32:39
Quote Anchor link
Zie www.php.net/mysqli_real_escape_string

(en stap af van de oude MySQL_*()-functies, en gebruik liever MySQLi)
 
Kees van Norde

Kees van Norde

17/06/2014 22:36:44
Quote Anchor link
Ik heb het inmiddels gevonden, ik kan het op deze manier oplossen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$vowels = array("'");
$currentItem->title = str_replace($vowels, "\'", $currentItem->title);
$currentItem->description = str_replace($vowels, "\'", $currentItem->description);

Ik zal me nog even gaan verdiepen in die link die je gaf, maar voor nu is het verholpen, bedankt!
 
- Ariën  -
Beheerder

- Ariën -

17/06/2014 23:34:19
Quote Anchor link
Heh?!?
Dat is wel een hele rare en smerige manier, terwijl ik je notabene nog verwijs naar de correcte manier?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.