When upgrading these boards from phpBB to vBulletin, I encountered a few errors in the posts. One of these is that the old style stores quotes as " and it is printed out verbatim in the posts.
Is there a find and replace SQL statement to traverse through a record of posts replacing all instances of " with " ??
Nope :-(. You need to write a php script (or, whatever language you want) to retrieve all the records, fix each record, and then shove it back to the dictionary.
Actually, while PHP is useful, it is not necessary. I think you can telnet into mysql or something like that.
If you were to use a php script, here's some inefficient code:
Assuming your database was named "mydb" and your table was named "mytable" and included fields "id" and "text":
[PHP]
<?
$db = mysql_connect("localhost", "username", "password") or die(mysql_error()); //connect to mysql
mysql_select_db("mydb",$db); //select the database
$table = mysql_query("SELECT * FROM mytable", $db) or die(mysql_error()); //grab the table data
while($row = mysql_fetch_assoc($table)){ //do this for every row in the table
$newtext = str_replace(""", '"', $row['text']); //replace " with " in the text field and store that as the variable newtext
if ($newtext !== $row['text']){ //if newtext is different from the database value, then we need to update
$tmp = mysql_query("UPDATE mytable SET text = '$newtext' WHERE id = $row['id']", $db) or die(mysql_error()); //update the database
} //end if statement
} //end while loop
?>
[/PHP]
I only checked it for syntax but just IM me if you have any trouble.
Last edited by evilmonkey29; Aug 7th, 2003 at 12:57 am.
It didn't work. I just kept getting MySQL errors in the middle of reading the first post. I tweaked some stuff and got it to edit stuff halfway thru the database until it got stuck. Then I restored a previous version of the database.
This must be like the fifth time I'm responding to this post! I respond. I find a problem. I restore the database. I respond. I find a problem w/ the database. I restore the database. I keep restoring to about 5 minutes ago LOL.
In any case, I finally cheated. I dumped the database into an .sql file. I did a find/replace in Microsoft Word. Then I imported everything back into the database.
Unfortunately, there are still a few differences between the board softwares that I need this find/replace utility for. I'd reallllly like to be able to get this php script working. It seems simple enuf, no? Does anyone know why this doesn't work or how to get it to work?
Dani, the script appears fine. How you implemented it isn't. There is only so much I can do with the given information. Please include a copy of the error message, along with a copy of your edited code (except the password of course), and a simple table layout explanation. Also include your PHP version.
Sorry this has been giving you trouble and I'll be glad to help, just need some more info.
It got through the first few posts. However, for some reason, it seemed to have gotten stuck halfway through reading one of the earlier posts. I'm not sure exactly what prompted it to suddenly crash and burn on me.
No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Previous Thread in Database Design Forum Timeline:Query Building