Hvordan ændrer jeg fra mysqli til mysql i mit script?
Godaften..Jeg har fået implementeret et kommentar script til mine blogs, men det fungerer kun på localhost, da mit webhotel desværre ikke understøtter mysqli. Derfor lyder mit spørgsmål på hvordan jeg får scriptet omprogrammeret, så det benytter sig af almindelig mysql i stedet ?
Jeg har lige udplukket fra det færdige script her:
------------------------------------------------------------------------------
blogs.display.php
------------------------------------------------------------------------------
<?php
session_start();
?>
<?php
$mysqli = new mysqli('localhost', 'root', '', 'mindatabase');
include_once '_thread.php';
$thread = new thread();
$res = $thread->getThread($_GET['id']);
if(isset($_POST['reply'])){
$replyID = $thread->insertReply($_POST['replyID'], $_POST['id'], $_POST['username'], $_POST['userid'], $_POST['parentuserid'], $_POST['text']);
if(is_numeric($replyID)){
header("Location: blogs.display.php?id=".$_GET['id']."");
}
}
?>
////////////// BLOGS HER //////////////////
<?php
include_once('includes/config.sql.php');
?>
<?php
$query = mysql_query("SELECT * FROM blogs WHERE blog_id='".$_GET['id']."'") or die(mysql_error());
$querytime = mysql_query("SELECT DATE_FORMAT(time, '%d.%m.%Y') as time FROM blogs WHERE blog_id=".$_GET['id']."") or die(mysql_error());
while ($row = mysql_fetch_assoc($query) AND $rowtime = mysql_fetch_assoc($querytime)) {
echo '<div class="textblogtitle2">';
echo '<a href=blogs.display.php?id=';
echo nl2br(htmlspecialchars($row['blog_id']));
echo ' class="alternative">';
echo nl2br(htmlspecialchars($row['title']));
echo '</a>';
echo '</div>';
echo '<div class="textblogtime2">';
echo '<a href=profil.php?id=';
echo nl2br(htmlspecialchars($row['userid']));
echo ' class="alternative">';
echo nl2br(htmlspecialchars($row['author']));
echo '</a> (';
echo $rowtime['time'];
echo ')</div>';
echo '<br />';
echo nl2br(htmlspecialchars($row['text']));
}
?>
////////////// KOMMENTARER HER //////////////////
<?php echo '<div class="containcomments">'.$thread->getThreadHTML($res).'</div>'; ?>
<a id="reply"></a>
////////////// SKRIV KOMMENTAR HER //////////////////
<?php
echo '<form method="post" action="">';
if(isset($_GET['no']) && $_GET['replyTo'] > 0){
echo ' Svar til #'.$_GET['no'].' | <a href=blogs.display.php?id='.$_GET['id'].' class="alternative">Fortryd</a><br /><br />';
}else{
$_GET['replyTo'] = 0;
}
if(!isset($_GET['puserid'])){
$query = mysql_query("SELECT * FROM blogs WHERE blog_id='".$_GET['id']."'") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
$_GET['puserid'] = $row['userid'];
}
}
echo '<input type="hidden" name="reply" value="1" />';
echo '<input type="hidden" name="userid" value="'.$_SESSION['SESS_MEMBER_ID'].'">';
echo '<input type="hidden" name="username" value="'.$_SESSION['SESS_USERNAME'].'">';
echo '<input type="hidden" name="parentuserid" value="'.$_GET['puserid'].'">';
echo '<input type="hidden" name="id" value="'.$_GET['id'].'">';
echo '<input type="hidden" name="replyID" value="'.$_GET['replyTo'].'">';
echo '<textarea name="text" rows="10" cols="62" class="input3"></textarea><br/>';
echo '<div class="text5">';
echo '<input type="image" name="send" value="Gem" class="input" src="images/buttonpost.png" />';
echo '</div></form>';
?>
------------------------------------------------------------------------------
_thread.php
------------------------------------------------------------------------------
<?php
class thread
{
public $aCommentId = array(0);
public $aThread = array();
public function getThreadHTML($aThread, $nLevel=0, $childCount=0) {
$aRet = array('<ul>');
if(count($aThread)){
for ($i=0; $i<count($aThread[$nLevel]); $i++) {
$style = '';
if($aThread[$nLevel][$i]->isChild > 0) $style = 'angle';
if($childCount > 1) $style = 'line_angle';
$id = $aThread[$nLevel][$i]->id;
$no = $aThread[$nLevel][$i]->no;
$aRet[] = sprintf('
<li class="%1$s">
<a id="%5$d" />
<div class="message">
<div class="kommentaroverskrift">
<a href="#%5$d">#%2$d</a>
</div>
<div class="kommentardato">%7$s</div>
<br /><br />%4$s<br /><br />
<div class="kommentarforfatter">
<a href="profil.php?id=%8$d" class="alternative">%3$s</a></div>
<div class="kommentarsvar">
<a href="?id=%6$d&replyTo=%5$d&puserid=%8$d&no=%2$d#reply">
<img src="images/buttonsvar.png" alt="" border="0" />
</a>
</div>
</div>', $style, $no, $aThread[$nLevel][$i]->author, $aThread[$nLevel][$i]->text, $id, $aThread[$nLevel][$i]->blog_id, $aThread[$nLevel][$i]->time, $aThread[$nLevel][$i]->userid, $aThread[$nLevel][$i]->parentuserid);
$childCount--;
if (isset($aThread[$id]) && is_array($aThread[$id])) {
$aRet[] = $this->getThreadHTML($aThread, $id, $aThread[$nLevel][$i]->childCount).'</li>';
}
else $aRet[] = '</li>';
}
}
return implode('', $aRet).'</ul>';
}
public function getThread($id) {
global $mysqli;
$sql = sprintf("SELECT t.id, t.parent_id, t.author, t.userid, t.text, DATE_FORMAT(t.time, '%%d.%%m.%%Y kl. %%H:%%i') as time, count(t2.parent_id) as childCount, count(t3.id) as isChild, t.blog_id
FROM blogs_comments AS t
LEFT JOIN blogs_comments AS t2 ON (t.id=t2.parent_id)
AND t2.blog_id = t.blog_id
LEFT JOIN blogs_comments AS t3 ON (t3.id=t.parent_id)
WHERE t.blog_id = '%d'
GROUP BY t.id",$id);
if($result = $mysqli->query($sql)){
$i = 1;
while ($row = $result->fetch_object()) {
$row->no = $i++;
$this->aCommentId[] = $row->id;
if (isset($this->aThread[$row->parent_id]) && !is_array($this->aThread[$row->parent_id])) $this->aThread[$row->parent_id] = array();
$this->aThread[$row->parent_id][] = $row;
}
}else{
die($mysqli->error);
}
return $this->aThread;
}
function insertReply($replyID, $id, $author, $userid, $parentuserid, $text){
global $mysqli;
$sql = "INSERT INTO blogs_comments (parent_id, blog_id, author, userid, parentuserid, text, time) VALUES (?, ?, ?, ?, ?, ?, NOW())";
if($stmt = $mysqli->prepare($sql)){
$stmt->bind_param('iissss', $replyID, $id, $author, $userid, $parentuserid, $text);
$stmt->execute();
return $stmt->insert_id;
}else{
return $mysqli->error;
}
//return true;
}
}
?>
Jeg har selv prøvet ved at lave om på $mysqli variablen ved at gøre følgende:
$mysql = mysql_connect('xxx', 'xxx', 'xxx');
mysql_select_db('xxx', $mysql);
og derefter ændre $mysqli variablerne til $mysql, men så får jeg bare fejlen:
Fatal error: Call to a member function query() on a non-object in _thread.php on line 56
Så derfor er jeg selv lidt på bar fod med hvordan jeg løser problemet... Håber meget i kan hjælpe med det :/
