vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   How can change all the Domainname to the New Domainname with only one SQL-Query? (https://vborg.vbsupport.ru/showthread.php?t=42263)

php-resource.de 08-13-2002 11:39 PM

How can change all the Domainname to the New Domainname with only one SQL-Query?
 
how can i change LINKs in my POSTs table?

I just moved to new domain and some links on the board are linked to the wrong Domainname.

How can change all the Domainname to the New Domainname with only one SQL-Query?

Thanks 4 you help
Berni

tHE DSS 08-14-2002 06:56 PM

Not with a single SQL query, I don't think that possible... but, bring some PHP into the equation, and it's perfectly possible, without pretty much lifting a finger.

I will be wanting to do somthing very similar soon myself, so I thought now about right to try to right a script for the job.

I haven't actually tested this script on a database yet, but i've tested the script out pretty much... just not with a connection to a database.

Try it out, but have a database backup before... you MUST backup your database FIRST.

Anyway, this is the general idea :

PHP Code:

<?php

require('./global.php');

$oldDomainName "www.old_domain.com";
$newDomainName "www.new_domain.com";

$getPosts $DB_site->query("SELECT postid,pagetext FROM post ORDER BY postid ASC");
$num_rows $DB_site->num_rows($getPosts);
echo 
"$num_rows Posts Retrieved...";
$rows_updated 0;
if (!
$num_rows <=0) {
    while (
$row $DB_site->fetch_array($getPostsMYSQL_ASSOC)) {
        if (
preg_match ("/$oldDomainName/i"$row[pagetext])) {
            
$newPageText preg_replace ("'$oldDomainName'i"$newDomainName$row[pagetext]);
            
$DB_site->query("UPDATE post SET pagetext='" addslashes($newPageText) . "' WHERE postid=$row[postid]");
            
$rows_updated++;
        }
    }
    echo 
"$rows_updated Posts Updated";
} else {
    echo 
"No Posts Found In Table";
}
$DB_site->free_result($getPosts);

?>

... substitute the $oldDomainName with your old domain name, and the same with $newDomainName, with your new domain name.

Exectute the script from within your FORUMS root, and just wait for it to end, and the changes should have happend.

I would recommend trying this on a "non-live" server first... like, if you have a copy of your forums on your computer (intranet).

Let me know.

php-resource.de 08-14-2002 07:04 PM

thanks for your Help.
but i'm looking for a SQl-Query. I know that it is possible with only one query, i just don't know the right expression.

Update table set feld = reg(blalblbl) ....

Thanks agin
Berni

tHE DSS 08-15-2002 08:51 PM

I've been speaking with an SQL guru... and he's not sure it's possible with usual SQL.

php-resource.de 08-15-2002 08:53 PM

i know it is.
I saw it on www.vbulletin.com or in this forum.
But i just can't remember me where it was :(

thanks
berni

tHE DSS 08-15-2002 09:45 PM

I'll take your word for it.

Hope somone gives up the link... i'd like a single query to do this.

php-resource.de 08-15-2002 09:48 PM

if i find the solution i will drop you an Email.

cu
berni

Lesane 08-16-2002 08:39 AM

Wich field do you want to update in the post table? Title Or Pagetext?

If pagetext then you could use something like this:

PHP Code:

UPDATE post SET pagetext REPLACE(pagetext'http://www.oldurl.com''http://www.newurl.com'); 

This replaces all 'http://www.oldurl.com' to 'http://www.newurl.com' in the field 'pagetext' of the table 'post'.

php-resource.de 08-16-2002 08:41 AM

thanks!!!!
100% the solution i was looking for

thanks again
Berni

tHE DSS 08-16-2002 04:03 PM

Excellent!!


All times are GMT. The time now is 07:07 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01038 seconds
  • Memory Usage 1,739KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete