Jump to content

Help with MySQL


btvbill

Recommended Posts

The following script creates a WordPress post directly from a MySQL database but the problem is that if you run it again, it duplicates. I'm a bit new at this and need some help with MySQL code that will update existing records in content in the database changes, otherwise ignore it and insert any new records. I've tried adding some query code to the script but so far have been unsuccessful. Any help would be appreciated. Here's the script:

 

<?php

 

// Configuration info goes here: this is the db I'm pulling from.

$hostname="localhost";

$dbname="testwp";

$user="root";

$pass="";

 

// Update the category # below inside the array.

 

$link = mysql_connect($hostname, $user, $pass);

mysql_select_db($dbname, $link);

 

$results = mysql_query("SELECT * FROM genesis",$link);

 

require('./wp-load.php');

 

$i = 0;

while ($row = mysql_fetch_array($results,MYSQL_ASSOC)) {

$post = array();

$post['post_status'] = 'publish';

$post['post_category'] = array(4);

$post['post_date'] = date('Y-m-d H:i:s',strtotime($row['date']));

$post['post_title'] = $row['title'];

$post['post_content'] = $row['description'];

$posts[$i] = $post;

wp_insert_post($post);

$i++;

 

}

 

mysql_free_result($results);

mysql_close($link);

 

?>

Link to comment
https://forums.phpfreaks.com/topic/249124-help-with-mysql/
Share on other sites

It creates duplicate posts from whatever records are in the database. I did not write the script and the website forum that I found it on did not reply to my post. Maybe it passes something to wp-load that inserts it into the WordPress database? It does work though but if you run it twice, you get duplicate posts each time you run the script.

Link to comment
https://forums.phpfreaks.com/topic/249124-help-with-mysql/#findComment-1279343
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.