首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从config.php中获取值?

问如何从config.php中获取值?
EN

Stack Overflow用户
提问于 2017-06-10 17:05:50
回答 2查看 54关注 0票数 0

我可以在文件config.php中放一个函数吗?

config.php :

代码语言:javascript
复制
<?php

$dbhost="localhost";  
$dbusername="user1"; 
$dbpassword="123456";
$dbname="dbname1"; 

$table_name="table1";

$db=mysql_connect($dbhost,$dbusername,$dbpassword) or die (mysql_error());
@mysql_select_db($dbname) or die (mysql_error());


function next_auto_increment(){
    $Result_auto_increment= mysql_query("SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '$dbname' AND TABLE_NAME = '$table_name' ");
    $row_auto_increment=mysql_fetch_array($Result_auto_increment);
    $auto_increment = $row_auto_increment['AUTO_INCREMENT']; 
    return $auto_increment;
}

?>

然后,我从其他php调用func,如下所示:

代码语言:javascript
复制
require_once "config.php";
$the_next_auto_increment = next_auto_increment();

但是这个功能不起作用!

如果我将函数放在同一个php文件中,它可以工作,但在config.php中不起作用。

EN

回答 2

Stack Overflow用户

发布于 2017-06-10 17:16:17

$dbname和$table_name变量不在next_auto_increment函数块的范围内。

您可以将它们作为参数传递:

代码语言:javascript
复制
function next_auto_increment($dbname, $table_name){
    ...
}    

或者您可以使用全局方法将它们拉到范围中:

代码语言:javascript
复制
function next_auto_increment(){
    global $dbname;
    global $table_name;

    ...
}

我还需要声明的义务,“您应该使用的是PDO而不是mysql_connect"!

票数 0
EN

Stack Overflow用户

发布于 2017-06-10 17:35:04

首先,所有的mysql_*函数都被废弃了。我也不会使用mysqli_*函数。只是PDO --它使用起来安全得多,而且你不必担心它在未来的许多年里会被废弃。

但是,关键是,这本身就可能导致您的脚本失败,什么也不做。如果您的php.ini未设置为显示错误,则如果发生这种情况,可能并不明显。

尝试将所有mysql_*函数更改为mysqli_* --除了少数几个地方外,它们大多是等价的。mysql_select_db需要..。成为mysqli_select_db($db,$dbname)。mysqli_query也会。

还有全球性的。next_auto_increment函数中有几个变量是全局定义的,您的函数无法访问这些变量。类似于:

代码语言:javascript
复制
global $db;
global $dbname;
global $table_name;

See the following to get errors to show up for you while developing.

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

https://stackoverflow.com/questions/44475921

复制
相关文章

相似问题

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