首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqli迁移

mysqli迁移
EN

Stack Overflow用户
提问于 2012-11-30 08:13:40
回答 1查看 295关注 0票数 0

在用参考书搭建了一个网站几周后,现在发现mysql是多余的,我需要把所有东西都改成mysqli,但我得到了严重矛盾的结果,尽管这需要几分钟的时间。

谁能告诉我,我现有的代码出了什么问题--至少可以说是最小的代码--很难转换成mysql,因为每次我尝试一个新的解决方案,我都会得到一个完全空白的页面。

顺便说一句,目前一切都运行得很好。

这是我连接到的配置页面:

代码语言:javascript
复制
<?php
# FileName="Connection_php_mysqli.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_em = "localhost";
$database_em = "php_test";
$username_em = "username";
$password_em = "password";
$em = mysql_pconnect($hostname_em, $username_em, $password_em) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

这是我的标题:

代码语言:javascript
复制
<?php require_once('connections/em.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  break;    
case "long":
case "int":
  $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  break;
case "double":
  $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
  break;
case "date":
  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  break;
case "defined":
  $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  break;
}
return $theValue;
}
}

//Query for tblReviews
mysql_select_db($database_em, $em);
$query_getReview = "SELECT reviews.title, reviews.cover_art, reviews.blog_entry, reviews.rating, reviews.published, reviews.updated, artists.artists_name, contributors.contributors_name, contributors.contributors_photo, contributors.contributors_popup, categories_name FROM reviews JOIN artists ON artists.id = reviews.artistid JOIN contributors ON contributors.id = reviews.contributorid JOIN categories ON categories.id = reviews.categoryid ORDER BY reviews.updated DESC LIMIT 3";
$getReview = mysql_query($query_getReview, $em) or die(mysql_error());
$row_getReview = mysql_fetch_assoc($getReview);
$totalRows_getReview = mysql_num_rows($getReview);

mysql_select_db($database_em, $em);
$query_getFeature = "SELECT features.features_words, features.published, features.updated, artists.artists_name, contributors.contributors_name, contributors.contributors_photo, contributors.contributors_popup, categories_name
FROM features JOIN artists ON artists.id = features.artistid JOIN contributors ON contributors.id = features.contributorid JOIN categories ON categories.id = features.categoryid ORDER BY features.updated DESC LIMIT 1";
$getFeature= mysql_query($query_getFeature, $em) or die(mysql_error());
$row_getFeature = mysql_fetch_assoc($getFeature);
$totalRows_getFeature = mysql_num_rows($getFeature);
?>

最后是显示所有内容的地方(我将包含所有内容,以防在我尝试进行迁移时,一行或其他行破坏了某些内容):

代码语言:javascript
复制
<?php do { ?>
<table id="center_table" width="650" border="0" cellpadding="0" cellspacing="0">
<tr>
    <td width="650" height="30" colspan="3" bgcolor="#FFFFFF"><a class="category" href="/" target="_top"><?php echo $row_getReview['categories_name']; ?></span></td><!-- category -->
</tr>
<tr>
    <td  width="60" height="60" rowspan="2" bgcolor="#FFFFFF"><span class="product_photo"><a href="<?php echo $row_getReview['cover_art']; ?>"><img id="product_photo" src="images/covers/<?php echo $row_getReview['cover_art']; ?>" width="60" height="60" border="0" alt="product_image" /></a><span></td><!-- product photo -->
    <td width="590" height="30" colspan="2" bgcolor="#FFFFFF"><span class="artist"><?php echo $row_getReview['artists_name']; ?></span><span class="title"><?php echo $row_getReview['title']; ?></td><!-- artist & title -->
</tr>
<tr>
    <td width="35" height="25" bgcolor="#FFFFFF"><div class="ienlarger"><img id="contributor_photo" /><a href="<?php echo $row_getReview['contributors_website']; ?>"><img src="<?php echo $row_getReview['contributors_photo']; ?>" alt="thumb" class="resize_thumb" /><span><img src="<?php echo $row_getReview['contributors_popup']; ?>" alt="large" /></span></a></div></td><!-- contributor photo -->
    <td width="555" height="25" bgcolor="#FFFFFF"><span class="contributor">Written by</span>&nbsp;<?php echo $row_getReview['contributors_name']; ?></td><!-- Written by Contributor Name -->
</tr>
<tr>
    <td width="650" colspan="3" bgcolor="#FFFFFF" valign="top"><p class="blog_entry"><?php echo nl2br($row_getReview['blog_entry']); ?></p></td><!-- Review -->
</tr>
<tr>
    <td width="650" height="15" colspan="3" bgcolor="#FFFFFF"><!-- rating -->
        <span class="rating">Rating :</span>&nbsp;<?php echo $row_getReview['rating']; ?>&nbsp;(out of a possible 1,000,000)<span class="published">Published :</span>&nbsp;<?php echo $row_getReview['published']; ?><span class="published">Updated :</span>&nbsp;<?php echo $row_getReview['updated']; ?></td>
</tr>
<tr>
    <td width="650" height="15" colspan="3" bgcolor="#FFFFFF">
        <img src="images/spacer.gif" width="650" height="15" alt="" /></td>
</tr>
</table>
<?php } while ($row_getReview = mysql_fetch_assoc($getReview)); ?>
<?php do { ?>
<table id="center_table" width="650" border="0" cellpadding="0" cellspacing="0">
<tr>
    <td width="650" height="30" colspan="3" bgcolor="#FFFFFF"><a class="category" href="/" target="_top"><?php echo $row_getFeature['categories_name']; ?</span></td><!-- category -->
</tr>
<tr>
    <td  width="60" height="60" rowspan="2" bgcolor="#FFFFFF">&nbsp;</td><!-- product photo -->
    <td width="590" height="30" colspan="2" bgcolor="#FFFFFF"><span class="artist"><?php echo $row_getFeature['artists_name']; ?></span><span class="title">Interview</td><!-- artist & title -->
</tr>
<tr>
    <td width="35" height="25" bgcolor="#FFFFFF"><div class="ienlarger"><img id="contributor_photo" /><a href="<?php echo $row_getFeature['contributors_website']; ?>"><img src="<?php echo $row_getFeature['contributors_photo']; ?>" alt="thumb" class="resize_thumb" /><span><img src="<?php echo $row_getFeature['contributors_popup']; ?>" alt="large" /></span></a></div></td><!-- contributor photo -->
    <td width="555" height="25" bgcolor="#FFFFFF"><span class="contributor">Written by</span>&nbsp;<?php echo $row_getFeature['contributors_name']; ?></td><!-- Written by Contributor Name -->
</tr>
<tr>
    <td width="650" colspan="3" bgcolor="#FFFFFF" valign="top"><p class="blog_entry"><?php echo nl2br($row_getFeature['features_words']); ?></p></td><!-- Feature -->
</tr>
<tr>
    <td width="650" height="15" colspan="3" bgcolor="#FFFFFF"><!-- rating -->
        <span class="published">Published :</span>&nbsp;<?php echo $row_getFeature['published']; ?><span class="published">Updated :</span>&nbsp;<?php echo $row_getFeature['updated']; ?></td>
</tr>
<tr>
    <td width="650" height="15" colspan="3" bgcolor="#FFFFFF">
        <img src="images/spacer.gif" width="650" height="15" alt="" /></td>
</tr>
</table>
<?php } while ($row_getFeature = mysql_fetch_assoc($getFeature)); ?>

正如您所看到的,到目前为止还没有太多东西,所以现在是开始使用mysqli的最佳时机。

EN

回答 1

Stack Overflow用户

发布于 2012-11-30 09:48:56

就我个人而言,我认为您现在应该开始使用mysqli,因为不再推荐使用mysql来编写新代码(http://www.php.net/manual/en/intro.mysql.php)。

同样提到这个线程Which is fastest in PHP- MySQL or MySQLi?,"mysqli支持底层MySQL的更多特性,比如事务和带参数的准备好的查询。你也可以以面向对象的方式调用mysqli函数“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13637105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档