After a lot of goggling I came to a conclusion that there are scripts for migrating drupal 5 db to drupal 6 db. In fact drupal itself provides upgrading mechanism for druapal 5 -> drupal 6. But somehow neither drupal nor someone else has provided any way to migrate drupal book from d5 to d6.
Drupal 5 book is fairly simple in managing its hierarchy as it manages entire hierarchy using parent and weight etc fields but drupal 6 is little tough to understand , specifically menu_link table, which has p1,p2,p3 for managing book hierarchy, this table is introduced in D6 only..
After investing quite a few quality hours , we (our team) have created a script which can migrate d5 book to d6 book. Logically it can be improved , I mean few loops can be reduced, naming conventions can be made better but idea behind this script was to use it one time as a migration engine , so those points were ignored for now. If possible we will upload new version with polished logic, but I hope this would solve some ones concern and thus our work will come handy to drupal community,
Please find following for the scirpt..

<?php

/**
 * This script is for drupal 5 to drupal 6 data migration of book.
 * @author Virtueinfo web technologies Pvt.Ltd.(India).
 * http://www.drupaldevelopment.in
 *
/**
 * used for database connection.
 */
$ss__Mysqlserver = "localhost"; // Server name 
$ss__MysqluserName = "<Put database Username here>";
$ss__MysqlPassword = "<Put database Password here>";
$connection = mysql_connect($ss__Mysqlserver,$ss__MysqluserName,$ss__MysqlPassword);
$sn__query = "SELECT DISTINCT(nid) FROM book";
$count = 0;
$sn__result = mysql_db_query('<Put Drupal5 database name here>', $sn__query) or die(mysql_error() . "<br />" . $sn__query);
while($sn__row = mysql_fetch_array($sn__result))
{
	$parentNodeArray[$sn__row['nid']] = getLevel($sn__row['nid'], 0,$sn__row['nid']);
}
mysql_free_result($sn__result);

/**
 *
 * Array variables
 */
global $as__taxonomyTermArray;
global $as__arrayMain,$an__arrayParent,$as__childNodeArray,$as__childNodeArrayFinal,
$as__newChildParentArray,$an__arrayForHasChildren;
static $arrayContent = array();
static $arrayContent1 = array();
static $parentData = array();
$aDepth = array();
$as__taxonomyTermArray = array();
$arrayMy = array();
$depthArray = array();
$as__arrayMain = array();
$an__arrayParent = array();
$depthArrayFinal = array();
$as__newChildParentArray = array();
$an__arrayForHasChildren = array();
$alreadyInserted = array();

/**
 * Function to get book level.
 *
 * This function is used to get level of all book pages for hierarchy.
 *
 * @param 
 *   $sn__id sn__id used for book node id.
 * @param
 *   $sn__lvl sn__lvl used for book level.
 * @param 
 *	 $sn__lastNodeID sn__lastNodeID to get ID of last node.
 * @return 
 *   levels of book.
 */
function getLevel($sn__id, $sn__lvl,$sn__lastNodeID)
{
    $sn__lvl++;
    $sn__query = "SELECT parent FROM book WHERE nid = '" . $sn__id . "' ORDER BY vid DESC LIMIT 1";
    $sn__result = mysql_db_query('<Put Drupal5 database name here>', $sn__query) or die(mysql_error() . "<br />" . $sn__query);
    $sn__parent = 0;
    if ( $sn__row = mysql_fetch_array($sn__result) )
    {
        $sn__parent = $sn__row['parent'];
    }
    if ($sn__parent == 0) return $sn__lvl;
    return getLevel($sn__parent, $sn__lvl,$sn__lastNodeID);
}
mysql_query("SET NAMES UTF8");

//delete any previously added data
$sn__queryForSelectedNodeTypes = mysql_query("SELECT n.nid FROM <Put Drupal6 database name here>.node AS n WHERE n.type IN('book')");
while($sn__dataNodeTypes = mysql_fetch_row($sn__queryForSelectedNodeTypes))
{
    removeAllNodeData($sn__dataNodeTypes[0]);
}

/**
 * Function used for remove all old data.
 *
 * This function is used to delete previously added data.
 *
 * @param 
 *   $sn__nodeId sn__nodeId to get id of node.
 */
function removeAllNodeData($sn__nodeId)
{
    $query = "DELETE FROM <Put Drupal6 database name here>.book WHERE nid = $sn__nodeId";
    mysql_query($query);
    $query = "DELETE FROM <Put Drupal6 database name here>.node WHERE nid = $sn__nodeId";
    mysql_query($query);
    $query = "DELETE FROM <Put Drupal6 database name here>.node_revisions WHERE nid = $sn__nodeId";
    mysql_query($query);
    $query = "DELETE FROM <Put Drupal6 database name here>.node_comment_statistics WHERE nid = $sn__nodeId";
    mysql_query($query);
    $query = "DELETE FROM <Put Drupal6 database name here>.term_node WHERE nid = $sn__nodeId";
    mysql_query($query);
    $query = "DELETE FROM <Put Drupal6 database name here>.page_title WHERE nid = $sn__nodeId";
    mysql_query($query);
    $query = "DELETE FROM <Put Drupal6 database name here>.nodewords WHERE id = $sn__nodeId";
    mysql_query($query);
    $query = "DELETE FROM <Put Drupal6 database name here>.menu_links WHERE module IN('book')";
    mysql_query($query);
    $query = "DELETE FROM <Put Drupal6 database name here>.content_type_book WHERE nid = $sn__nodeId";
    mysql_query($query);
}

$ss__query = "SELECT
				b.nid,
				GROUP_CONCAT(DISTINCT bc.nid ORDER BY bc.nid)
			FROM
				<Put Drupal5 database name here>.book AS b
			LEFT JOIN
				<Put Drupal5 database name here>.book AS bc
			ON
				b.nid = bc.parent
			GROUP BY
				b.nid";
$ss__getAllNodes = mysql_query($ss__query);
$count = 0;
$sn__Count = 0;
$ss_childString = "";
$ssMain = "";
while ($an__row = mysql_fetch_array($ss__getAllNodes))
{
    $an__arrayParent[] = $an__row[0];
    $ssMain .= $an__row[1].",";
    $as__arrayMain[] = $an__row;
    $as__childNodeArrayFinal[$an__row[0]][0] = NULL;
    $ss_childString .= $an__row[1].",";
    $tempArray = explode(",",trim($an__row[1],","));
    if($an__row[1] != NULL)
    {
        $an__arrayForHasChildren[] = $an__row[0];
    }
    foreach($tempArray as $childLocal)
    {
        $as__childNodeArrayFinal[$an__row[0]][$childLocal] = NULL;
        $as__newChildParentArray[$childLocal] = $an__row[0];
    }
}
$as__childNodeArray = explode(",",trim($ss_childString,","));

$depthArray = explode(",",$ssMain);
//For parent of book.
foreach($as__arrayMain as $an__row)
{
    $sn__bookParentId = $an__row[0];
    $as__childId = explode(",",$an__row[1]);
    $sn__Count += substr_count($an__row[1],",");
    $as__bookParentData = getBookDataForParent($sn__bookParentId);
    $as__bookBody = getBookBody($sn__bookParentId);
    $as__bookTeaser = getBookTeaser($sn__bookParentId);
    $as__bookParentWeight = getBookWeight($sn__bookParentId);
    $as__pageTitle = getBookPageTitle($sn__bookParentId);
    $as__bookMete = getBookMetaTags($sn__bookParentId);
    // First Insert the Parents to node and book table
    $sn__newParentNodeMLid = 0;
    if(!in_array($sn__bookParentId,$as__childNodeArray))
    {
        //Put parent here...
        $arrayContent[] = $sn__bookParentId;
        $parentData[$sn__bookParentId] = 0;
        $sn__newParentNodeId = insertIntoNodeTable($sn__bookParentId,$as__bookParentData,
$as__bookBody,$as__bookTeaser,$as__pageTitle,$as__bookMete);
        $as__childNodeArrayFinal[$sn__bookParentId][0] = $sn__newParentNodeId;
        $sn__newMlid = insertInMenuLinkTable($sn__newParentNodeId , $as__bookParentData,FALSE,$sn__bookParentId,$as__bookParentWeight);
        insertInBookTable($sn__newMlid, $sn__newParentNodeId);
        $parentData[$sn__bookParentId] = $sn__newParentNodeId;
        $sn__newParentNodeMLid = $sn__newMlid;
        $count ++;
    }
    if(!in_array($as__childId,$parentData) )
    {
        // For child of book.
        if (is_array($as__childId))
        {
            foreach ($as__childId as $sn__bookChlidId)
            {
                $arrayContent = array();
                $arrayContent[] = $sn__bookChlidId;
                $as__bookChildData = getBookDataForChild($sn__bookChlidId);
                $as__bookChildBody = getBookBody($sn__bookChlidId);
                $as__teaserBook = getBookTeaser($sn__bookChlidId);
                $as__bookChildWeight = getBookWeight($sn__bookChlidId);
                $as__pageTitle = getBookPageTitle($sn__bookChlidId);
                $as__bookMete = getBookMetaTags($sn__bookChlidId);
                $parentData[$sn__bookChlidId] = 0;
                $cntr = 0;
                foreach($as__bookChildData as $as__bookChilds)
                {
                    $sn__newChildNodeId = insertIntoChildNodeTable($sn__bookChlidId,$as__bookChilds,
$as__bookChildBody,$as__teaserBook,$as__pageTitle,$as__bookMete);
                    $alreadyInserted[] = $sn__bookChlidId;
                    $as__childNodeArrayFinal[$as__newChildParentArray[$sn__bookChlidId]][$sn__bookChlidId] = $sn__newChildNodeId;
                    if(array_key_exists($sn__bookChlidId,$as__childNodeArrayFinal))
                    {
                        $as__childNodeArrayFinal[$sn__bookChlidId][0] = $sn__newChildNodeId;
                    }
                    $sn__newMlid = insertInMenuChildLinkTable($sn__newChildNodeId , $as__bookChilds,$sn__newParentNodeId,$sn__bookChlidId,
$sn__newParentNodeMLid,$as__bookChildWeight);
                    insertInBookTable($sn__newMlid, $sn__newChildNodeId,$sn__newParentNodeId);
                    $parentData[$sn__bookChlidId] = $sn__newChildNodeId;
                    $count++;
                }
            }
        }

    }
}

/**************************node complete***********************************/
	
/* for p series in menulink update*/
$sn__query = "select mlid from <Put Drupal6 database name here>.menu_links where module = 'book' order by mlid";
$sn__result = mysql_query($sn__query);
while($sn__data = mysql_fetch_array($sn__result))
{
    getPseries($sn__data[0]);
}

/**
 * Function to get book weight.
 *
 * This function is used to get book weight.
 * 
 * @param 
 *   $sn__oldNodeId sn__oldNodeId to get ID of old node id. 
 * @return 
 *   resultsn__resultDataforWeight.
 */
function getBookWeight($sn__oldNodeId)
{
    $sn__query = mysql_query("SELECT
                            b.weight
                        FROM
                            <Put Drupal5 database name here>.book AS b
                        WHERE
                            b.nid =$sn__oldNodeId
                        ORDER BY
                            b.vid DESC
                        LIMIT 0,1");
    $sn__resultDataforWeight = @mysql_fetch_row($sn__query);
    return $sn__resultDataforWeight[0];
}

/**
 * Function used to insert parentdata into node table
 *
 * This function is used to insert data into node table.
 * 
 * @param 
 *   $sn__nodeId id of book node.
 * @param 
 *   array $as__arrayNodeDetailArray array of node details.
 * @param 
 *   $nodeRevisionData data bout node revision.
 * @param 
 *   $as__nodeRevisionData array to get teaser value.
 * @param 
 *   $as__bookArray array of book.
 * @param 
 *   $as__bookTags to get book tags.
 * @return integer $o__nodeId.
 */
function insertIntoNodeTable($sn__nodeId, $as__arrayNodeDetailArray,$as__nodeRevisionData,
$as__teaserArray,$as__bookArray,$as__bookTags)
{
    $sn__tempVidSql = "select max(vid) from <Put Drupal6 database name here>.node_revisions";
    $sn__recVid = mysql_query($sn__tempVidSql);
    $sn__dataVid = mysql_fetch_row($sn__recVid);
    $sn__vid = $sn__dataVid[0] + 1;
    $ss__type = $as__arrayNodeDetailArray[0][1];
    $ss__title = pretext($as__arrayNodeDetailArray[0][2]);
    $sn__created = $as__arrayNodeDetailArray[0][5];
    $sn__changed = $as__arrayNodeDetailArray[0][6];
    $ss__body = pretext($as__nodeRevisionData[0]);
    $ss__teaser = pretext($as__nodeRevisionData[1]);
    $ss__teaserBook = pretext($as__teaserArray[0]);
    $ss__pageTitleBook = pretext($as__bookArray[0]);
    $sm__nodeQuery = "INSERT INTO 
						<Put Drupal6 database name here>.node (type,vid,title,uid,status,created,changed)
					VALUES 
						('$ss__type',$sn__vid,'$ss__title',1,1,$sn__created,$sn__changed) ";
    mysql_query($sm__nodeQuery);
    $sn__nodeQuery1 = "SELECT nid FROM <Put Drupal6 database name here>.node ORDER BY nid DESC LIMIT 0,1";
    $sn__nodeQuery1 = mysql_query($sn__nodeQuery1);
    while($o__nodeData  = mysql_fetch_object($sn__nodeQuery1))
    {$o__nodeId = $o__nodeData;}
    $sm__nodeQuery = "INSERT INTO 
						<Put Drupal6 database name here>.node_revisions (nid,uid,title,body,teaser,format)
         			VALUES 
					   ($o__nodeId->nid,1,'$ss__title','$ss__body','$ss__teaser',1)";
    mysql_query($sm__nodeQuery);
    $sm__nodeQuery = "INSERT INTO 
						<Put Drupal6 database name here>.content_type_book (nid,vid,field_teaser_value)
					VALUES 
						($o__nodeId->nid,$sn__vid,'$ss__teaserBook')";
    mysql_query($sm__nodeQuery);
    $sm__nodeQuery = "INSERT INTO 
						<Put Drupal6 database name here>.page_title (type,id,page_title) 
					VALUES 
						('node',$o__nodeId->nid,'$ss__pageTitleBook')";
    mysql_query($sm__nodeQuery);
    $ss__bookMeteData = array();
    foreach ($as__bookTags as $sn__key => $ss__value)
    {
        $sn__bookKeys = $sn__key;
        $ss__bookMeteData['value'] = $ss__value;
        $ss__bookMetaTags = pretext(serialize($ss__bookMeteData));
        $sm__nodeQuery = "INSERT INTO <Put Drupal6 database name here>.nodewords 
										(type,id,name,content)
									VALUES 
										(5,$o__nodeId->nid,'$sn__bookKeys','$ss__bookMetaTags')";
        mysql_query($sm__nodeQuery);
    }
    $sn__nodeQuery4 = "SELECT vid FROM <Put Drupal6 database name here>.node_revisions ORDER BY nid DESC LIMIT 0,1";
    $sn__nodeQuery4 = mysql_query($sn__nodeQuery4);
    while($o__objects = mysql_fetch_object($sn__nodeQuery4))
    {
        $sn__nodeQuery = "UPDATE <Put Drupal6 database name here>.node SET vid = ".$o__objects->vid." WHERE nid =".$o__nodeId->nid;
        mysql_query($sn__nodeQuery);
    }
    $sn__nodeForwardStatisticsQuery = "INSERT INTO <Put Drupal6 database name here>.forward_statistics (nid) VALUES ($o__nodeId->nid)";
    mysql_query($sn__nodeForwardStatisticsQuery);
    $time = time();
$sn__nodenodeCommentStatisticsQuery = "INSERT INTO
<Put Drupal6 database name here>.node_comment_statistics
(nid,last_comment_timestamp)
VALUES 
($o__nodeId->nid,$time)";
    mysql_query($sn__nodenodeCommentStatisticsQuery);
    $sn__nodeHistoryQuery = "INSERT INTO <Put Drupal6 database name here>.history (uid,nid,timestamp) VALUES (1,$o__nodeId->nid,$time)";
    mysql_query($sn__nodeHistoryQuery);
    return $o__nodeId->nid;
}

/**
 * used to insert data into bookchild node table

 * This function is used to insert data into child node table.
 * 
 * @param 
 *   $sn__nodeId  id of book node.
 * @param 
 *   $as__arrayNodeDetailArray array of node details.
 * @param 
 *   $as__nodeRevisionData data bout node revision.
 * @param 
 *   $as__teaserArray array to get teaser value.
 * @param 
 *   $as__bookArray array of book.
 * @param 
 *   $bookTags to get book tags.
 * @return integer $o__nodeId.
 */
function insertIntoChildNodeTable($sn__nodeId, $as__arrayNodeDetailArray,$as__nodeRevisionData,
$as__teaserArray,$as__bookArray,$as__bookTags)
{
    $sn__tempVidSql = "select max(vid) from <Put Drupal6 database name here>.node_revisions";
    $sn__recVid = mysql_query($sn__tempVidSql);
    $sn__dataVid = mysql_fetch_row($sn__recVid);
    $sn__vid = $sn__dataVid[0] + 1;
    $ss__type = $as__arrayNodeDetailArray[1];
    $ss__title = pretext($as__arrayNodeDetailArray[2]);
    $sn__created = $as__arrayNodeDetailArray[5];
    $sn__changed = $as__arrayNodeDetailArray[6];
    $ss__body = pretext($as__nodeRevisionData[0]);
    $ss__teaser = pretext($as__nodeRevisionData[1]);
    $ss__teaserBook = pretext($as__teaserArray[0]);
    $ss__pageTitleBook = pretext($as__bookArray[0]);
    $sm__nodeQuery = "INSERT INTO <Put Drupal6 database name here>.node 
										(type,vid,title,uid,status,created,changed) 
									VALUES 
										('$ss__type',$sn__vid,'$ss__title',1,1,$sn__created,$sn__changed) ";
    $sn__recNid = mysql_query($sm__nodeQuery);
    $sn__nodeQuery1 = "SELECT nid FROM <Put Drupal6 database name here>.node ORDER BY nid DESC LIMIT 0,1";
    $sn__nodeQuery1 = mysql_query($sn__nodeQuery1);
    while($o__nodeData  = mysql_fetch_object($sn__nodeQuery1))
    {$o__nodeId = $o__nodeData;}
    $sm__nodeQuery = "INSERT INTO <Put Drupal6 database name here>.node_revisions 
										(nid,uid,title,body,teaser,format)
									VALUES 
										($o__nodeId->nid,1,'$ss__title','$ss__body','$ss__teaser',1)";
    mysql_query($sm__nodeQuery);
    $sm__nodeQuery = "INSERT INTO <Put Drupal6 database name here>.content_type_book (nid,vid,field_teaser_value) VALUES ($o__nodeId->nid,$sn__vid,'$ss__teaserBook')";
    mysql_query($sm__nodeQuery);
    $sm__nodeQuery = "INSERT INTO <Put Drupal6 database name here>.page_title (type,id,page_title) VALUES ('node',$o__nodeId->nid,'$ss__pageTitleBook')";
    mysql_query($sm__nodeQuery);
    $ss__bookMeteData = array();
    foreach ($as__bookTags as $sn__key => $ss__value)
    {
        $sn__bookKeys = $sn__key;
        $ss__bookMeteData['value'] = $ss__value;
        $ss__bookMetaTags = pretext(serialize($ss__bookMeteData));
        $sm__nodeQuery = "INSERT INTO <Put Drupal6 database name here>.nodewords (type,id,name,content) VALUES (5,$o__nodeId->nid,'$sn__bookKeys','$ss__bookMetaTags')";
        mysql_query($sm__nodeQuery);
    }
    $sn__nodeQuery4 = "SELECT vid FROM <Put Drupal6 database name here>.node_revisions ORDER BY nid DESC LIMIT 0,1";
    $sn__nodeQuery4 = mysql_query($sn__nodeQuery4);
    while($o__objects = mysql_fetch_object($sn__nodeQuery4))
    {
        $nodeQuery = "UPDATE <Put Drupal6 database name here>.node SET vid = ".$o__objects->vid." WHERE nid =".$o__nodeId->nid;
        mysql_query($nodeQuery);
    }
    $sn__nodeForwardStatisticsQuery = "INSERT INTO <Put Drupal6 database name here>.forward_statistics (nid) VALUES ($o__nodeId->nid)";
    mysql_query($sn__nodeForwardStatisticsQuery);
    $time = time();
    $sn__nodenodeCommentStatisticsQuery = "INSERT INTO <Put Drupal6 database name here>.node_comment_statistics
                (nid,last_comment_timestamp) 
           VALUES 
              ($o__nodeId->nid,$time)";
    mysql_query($sn__nodenodeCommentStatisticsQuery);
    $sn__nodeHistoryQuery = "INSERT INTO <Put Drupal6 database name here>.history (uid,nid,timestamp) VALUES (1,$o__nodeId->nid,$time)";
    mysql_query($sn__nodeHistoryQuery);
    return $o__nodeId->nid;
}

/**
 * used for insert data parent menulink.
 *
 * This function is used to insert data into menu link table.
 * 
 * @param 
 *   $sn__newNodeId new node id of book.
 * @param
 *   array $as__arrayNodeDetail node detail array.
 * @param 
 *   $sn__newParentNodeId defauld false.
 * @param
 *   $sn__oldNodeId old node id of book.
 * @param 
 *   $sn__weight weight of book defauld 0.
 * return integer mlid.
 */
function insertInMenuLinkTable($sn__newNodeId, $as__arrayNodeDetail,$sn__newParentNodeId = false,$sn__oldNodeId = false,$sn__weight=0)
{
    global $an__arrayParent,$parentNodeArray,$an__arrayForHasChildren;
    $sm__menuName = "book-toc-".$sn__newNodeId;
    $sn__plid = $sn__newNodeId;
    $ss__link_Title =  pretext($as__arrayNodeDetail[0][2]);
    $ss__link_path = "node/$sn__newNodeId";
    $ss__router_path = "node/%";
    $ss__options = "a:0:{}";
    $sn__depth = $parentNodeArray[$sn__oldNodeId];
    $has_children = (in_array($sn__oldNodeId,$an__arrayForHasChildren)) ? 1 : 0 ;
    $p1 = "";
    $ss__module = 'book';
    $sm__nodeQuery = "INSERT INTO
                                <Put Drupal6 database name here>.menu_links 
(menu_name,plid,link_path,router_path,
link_title,options,module,depth,has_children,weight)
						VALUES
('$sm__menuName',0,'$ss__link_path','$ss__router_path','$ss__link_Title',
'$ss__options','$ss__module',$sn__depth,$has_children,$sn__weight) ";
    mysql_query($sm__nodeQuery);
    $sn__nodeQuery1 = "SELECT mlid FROM <Put Drupal6 database name here>.menu_links ORDER BY mlid DESC LIMIT 0,1";
    $sn__mlidQuery = mysql_query($sn__nodeQuery1);
     while($o__menuLinkData  = mysql_fetch_object($sn__mlidQuery))
    {$o__nodeId = $o__menuLinkData;}
    return $o__nodeId->mlid;
}

/**
 * used to insert data in child menulink table
 *
 * This function is used for inserting data into child menulink table.
 * 
 * @param 
 *   $sn__newNodeId new node id of book.
 * @param 
 *   $as__arrayNodeDetail node detail array.
 * @param 
 *   $sn__newParentNodeId new book node id default false.
 * @param 
 *   $sn__oldNodeId old book node id default false. 
 * @param 
 *   $sn__parentMenuLinkId parent menulink id default false.
 * @param 
 *   $sn__weight weight of book defauld 0.
 * @return integer mlid.
 */
function insertInMenuChildLinkTable($sn__newNodeId, $as__arrayNodeDetail,$sn__newParentNodeId = false,$sn__oldNodeId = false,$sn__parentMenuLinkId = false,$sn__weight=0)
{
global $an__arrayParent,$parentNodeArray,$as__newChildParentArray,
$as__childNodeArrayFinal,$an__arrayForHasChildren;
    $sm__menuName = "book-toc-".$sn__newParentNodeId;
    $sn__plidRow = $as__newChildParentArray[$sn__oldNodeId];
    $sn__plidRow = $as__childNodeArrayFinal[$sn__plidRow][0];
    $sn__sqlMl = "select mlid from <Put Drupal6 database name here>.menu_links where link_path = 'node/".$sn__plidRow."' LIMIT 1";
    $sn__recMl = mysql_query($sn__sqlMl);
    $sn__dataMl = mysql_fetch_row($sn__recMl);
    $sn__plid = $sn__dataMl[0];
    $as__link_Title =  pretext($as__arrayNodeDetail[2]);
    $ss__link_path = "node/".$sn__newNodeId;
    $ss__router_path = "node/%";
    $ss__options = "a:0:{}";
    $sn__depth = $parentNodeArray[$sn__oldNodeId];
    $has_children = (in_array($sn__oldNodeId,$an__arrayForHasChildren)) ? 1 : 0 ;
    $ss__module = 'book';
    $sm__nodeQuery = "INSERT INTO 
                                <Put Drupal6 database name here>.menu_links 
(menu_name,plid,link_path,router_path,link_title,
options,module,depth,has_children,weight)
                              VALUES 
('$sm__menuName',$sn__plid,'$ss__link_path','$ss__router_path',
                                    '$as__link_Title','$ss__options','$ss__module',$sn__depth,$has_children,$sn__weight) ";
    mysql_query($sm__nodeQuery);
    $sn__nodeQuery1 = "SELECT mlid FROM <Put Drupal6 database name here>.menu_links ORDER BY mlid DESC LIMIT 0,1";
    $sn__mlidQuery = mysql_query($sn__nodeQuery1);
    while($o__menuLinkData  = mysql_fetch_object($sn__mlidQuery))
    {$o__nodeId = $o__menuLinkData;}
    return $o__nodeId->mlid;
}

/**
 * used to insert data into book table.
 *
 * This function is used to insert data into book table.
 * 
 * @param 
 *   $sn__newMlid new menu link id of menulink table.
 * @param 
 *   $sn__newNodeId new node id.
 * @param 
 *   $sn__newParentNodeId new parent node id defauly false.
 * @return 
 */
function insertInBookTable($sn__newMlid, $sn__newNodeId,$sn__newParentNodeId = false)
{
    if($sn__newParentNodeId)
    {
        $sn__nodeQuery = "INSERT INTO <Put Drupal6 database name here>.book
											(mlid,nid,bid)
										VALUES 
											($sn__newMlid,$sn__newNodeId,$sn__newParentNodeId)";

    }
     else
    {
        $sn__nodeQuery = "INSERT INTO <Put Drupal6 database name here>.book 
												(mlid,nid,bid)
											VALUES
												($sn__newMlid,$sn__newNodeId,$sn__newNodeId)";
    }
    mysql_query($sn__nodeQuery);
    return;
}

/**
 * used to get book data of child
 *
 * This function is used to get book data for child.
 * 
 * @param 
 *   $sn__nid id of book node.
 * @return string am__childData.
 */
function getBookDataForChild ($sn__nid)
{
    $sm__query = "SELECT
               DISTINCT(n.nid),
               n.type,
               n.title,
               n.uid,
               n.status,
               n.created,
               n.changed
            FROM
               <Put Drupal5 database name here>.node as n
            INNER JOIN
               <Put Drupal5 database name here>.book as b
            ON
               n.nid = b.nid
            WHERE
               n.type='book'
            AND
               b.nid='".$sn__nid."' ORDER BY n.nid ASC";
    $sm__getAllNodes = mysql_query($sm__query);
    $am__childData = array();
    while ($am__row = mysql_fetch_array($sm__getAllNodes))
    $am__childData[] = $am__row;
    return $am__childData;
}

/**
 * used to get parent book data.
 *
 * This function is used to get book data for parent.
 * 
 * @param 
 *   $sn__parentId parent id.
 * @return integer am__parentData.
 */
function getBookDataForParent ($sn__parentId)
{
    $sm__query = "SELECT
               DISTINCT(n.nid),
               n.type,
               n.title,
               n.uid,
               n.status,
               n.created,
               n.changed
            FROM
               <Put Drupal5 database name here>.node as n
            INNER JOIN
               <Put Drupal5 database name here>.book as b
            ON
               n.nid = '".$sn__parentId."'
            WHERE
               n.type='book' ORDER BY n.nid ASC";
    $sm__getAllNodes = mysql_query($sm__query);
    $am__parentData = array();
    while ($am__row = mysql_fetch_row($sm__getAllNodes))
    $am__parentData[] = $am__row;
    return $am__parentData;
}

/**
 * to get mlid.
 *
 * This function is used to get mlid of book table. 
 * 
 * @param 
 *   $sn__mlid menulink id.
 * @param array $an__resultArray array to get mlid.
 */
function getPseries($sn__mlid,$an__resultArray = array())
{
    $sn__query = "select plid from <Put Drupal6 database name here>.menu_links where mlid=$sn__mlid";;
    $sn__rec = mysql_query($sn__query);
    $an__resultArray[] = $sn__mlid;
    $sn__data = mysql_fetch_row($sn__rec);
    if($sn__data[0] != 0)
    {
        $an__resultArray[] = $sn__data[0];
        getPseries($sn__data[0],$an__resultArray);
    }
    else
    {
        $an__resultArray = array_unique($an__resultArray);
        $sn__query = "UPDATE <Put Drupal6 database name here>.menu_links SET ";
        $sn__countI = count($an__resultArray);
        foreach($an__resultArray as $sn__result)
        {
            $sn__query .= "p$sn__countI = ". $sn__result.",";
            $sn__countI--;
        }
        $sn__query = trim($sn__query,",");
        $sn__query .= " WHERE mlid = ".$an__resultArray[0];
        if(count($an__resultArray) > 0)
        {
            mysql_query($sn__query);
        }
    }
}

/**
 * This function is used for special characters.
 * 
 * @param 
 *  string $ss__text special characters.
 * @return string ss__titletext.  
 */
function pretext ($ss__text)
{
     /* Remove all PHP code from the text */
    $ss__text = preg_replace('@<(\?(php)?|%)(.+?)(\?|%)>@se', "''", $ss__text);
    $ss__titletext = addslashes($ss__text);
    return $ss__titletext;
}

/**
 * Function to get book body data.
 * @access public.
 * @param 
 *   $sn__id book id.
 * @return string ss__parentData.
 */
function getBookBody($sn__id)
{
    $ss__query = "SELECT
		  		   body,teaser
            FROM
		  		   <Put Drupal5 database name here>.node_revisions
            WHERE
		  		   nid = '".$sn__id."'
            ORDER BY
		  		   vid DESC LIMIT 0,1";
    $ss__getAllNodes = mysql_query($ss__query);
    $ss__row = mysql_fetch_row($ss__getAllNodes);
    $ss__parentData = $ss__row;
    return $ss__parentData;
}

/**
 * Function to get book teaser data.
 * 
 * @param 
 *   $sn__id book id.
 * @return string ss__teaserData.
 */
function getBookTeaser($sn__id)
{
    $ss__query = "SELECT
		  		   teaser
            FROM
		  		   <Put Drupal5 database name here>.nodeteaser
            WHERE
		  		   nid = '".$sn__id."'";
    $ss__getAllNodes = mysql_query($ss__query);
    $ss__row = mysql_fetch_row($ss__getAllNodes);
    $ss__teaserData = $ss__row;
    return $ss__teaserData;
}

/**
 * Function to get book page title.
 * 
 * @param 
 *   $sn__id book id.
 * @return string ss__pageTitleData.
 */
function getBookPageTitle($sn__id)
{
    $ss__query = "SELECT
		  		   page_title
            FROM
		  		   <Put Drupal5 database name here>.page_title
            WHERE
		  		   nid = '".$sn__id."'";
    $ss__getAllNodes = mysql_query($ss__query);
    $ss__row = mysql_fetch_row($ss__getAllNodes);
    $ss__pageTitleData = $ss__row;
     return $ss__pageTitleData;
}

/**
 * Function to get book meta tags.
 * 
 * @param 
 *   $sn__id book id.
 * @return string ss__bookMetaData.
 */
function getBookMetaTags($sn__id)
{
    $ss__query = "SELECT
		  		   name,content
            FROM
		  		   <Put Drupal5 database name here>.nodewords
            WHERE
		  		   id = '".$sn__id."'";
    $ss__getAllNodes = mysql_query($ss__query);
    $ss__bookMetaData = array();
     while ($as__row = mysql_fetch_array($ss__getAllNodes))
    {
        $ss__bookMetaData[$as__row[0]] = $as__row[1];
    }
    return $ss__bookMetaData;
}

Comments

beautifulmind’s picture

First of all, thanks for sharing the code.
This is really a great idea and should be a contrib module. This will make the Drupal 5.x -> 6.x migration more easy.

Regards.

Regards.
🪷 Beautifulmind