首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP mysql到mysqli迁移问题(自定义函数、过程样式)

问PHP mysql到mysqli迁移问题(自定义函数、过程样式)
EN

Stack Overflow用户
提问于 2015-08-05 08:45:23
回答 1查看 276关注 0票数 3

早上好!

我计划将我从mysql扩展到mysqli的整个应用程序迁移到mysqli,因为下一个PHP版本将不再支持mysql,我不想在最后几分钟变得愚蠢。

目前,所有页面都包含两个主要内容: 1)包含数据库连接数据的dbdata.inc.php;2)包含最常用功能的function.inc.php。

我想使用mysqli扩展来描述过程样式,但是我看到所有mysqli函数都必须接收连接链接作为参数。

我在征求关于最佳方式(即最无痛的解决方案)的建议,以便在不疯狂的情况下迁移,也不需要从根本上重写我的php页面。

dbdata.inc.php的实际内容

代码语言:javascript
复制
$yare_db = mysql_connect($yaredb_host,$yaredb_user,$yaredb_pass) or die("some error warning<br>"); 
mysql_select_db($yaredb_conn); 
mysql_query("SET NAMES 'utf8'");

在functions.inc.php中定义的大多数使用的函数:

代码语言:javascript
复制
function YQUERY($query) {
    $res = mysql_query($query) or die(mysql_error());
    return $res;
}

function FETCHA($res) {
    $rs = mysql_fetch_array($res);
    return $rs;
}

function NUMROWS($res) {
    $num = mysql_num_rows($res);
    return $num;
}

function AFFROWS() {
    $num = mysql_affected_rows();
    return $num;
}

/* an important function filtering user input texts before passing them to queries */

function msg_safe($string) {
    // some regex and \n to "<br>" substitutions...
    $string = mysql_real_escape($string);
    return $string;
}

现在的问题是如何迁移:

1)是否应该将db连接作为函数参数传递?例如:

代码语言:javascript
复制
function YQUERY($link,$query) {
    $res = mysqli_query($link,$query);
    return $res;
}

2)应该将db连接(在页面开始时定义为包含的dbdata.inc.php )定义为函数内部的全局变量吗?例如:

代码语言:javascript
复制
function YQUERY($query) {
     global $link;
     $res = mysqli_query($link,$query);
     return $res;
}

3)我(听起来很棒)应该在任何自定义函数中显式声明一个新连接吗?例如:

代码语言:javascript
复制
function YQUERY($query) {
     $link = mysqli_connect("host","user","pass","db") or die("Error " . mysqli_error($link)); 
     $res = mysqli_query($link,$query);
     return $res;
}

4)其他建议?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2015-08-05 10:01:36

如果您的应用程序中没有那么多连接,那么全局$link是最好的选择。如果您有这么多连接,我认为您必须执行一个函数来打开连接,以及其他关闭连接的函数,当您在DB中执行某些操作时,打开连接,做您需要做的一切,并关闭连接。

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

https://stackoverflow.com/questions/31827590

复制
相关文章

相似问题

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