Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP函数中的mysql函数_Php_Mysql_Function_Include - Fatal编程技术网

PHP函数中的mysql函数

PHP函数中的mysql函数,php,mysql,function,include,Php,Mysql,Function,Include,例如: <? function getTitle(){ $query="SELECT title FROM news WHERE author = 'admin' LIMIT 5"; $result = mysql_query($query, $mysql_connection); $data = mysql_fetch_array($result,MYSQL_ASSOC); return $data['title']; } ?> 每次我想提交

例如:

<? 
function getTitle(){
    $query="SELECT title FROM news WHERE author = 'admin' LIMIT 5";
    $result = mysql_query($query, $mysql_connection);
    $data = mysql_fetch_array($result,MYSQL_ASSOC);
    return $data['title'];
}
?>

每次我想提交一个MySql查询时,我都必须在函数中包含config.php,否则它就无法工作。 我尝试在文件的开头包含,但仍然没有结果

php文件包括到数据库的连接和数据库的选择。没有错误


出现了什么问题?

$mysql\u connection
在函数的作用域内未知

如果脚本中只使用一个连接,理论上也可以省略连接说明符:

$result = mysql_query($query);
这样,您的mySQL调用就可以在没有任何额外步骤的情况下工作

如果要保留标识符(如果有多个连接处于打开状态,则应保留),作为一种快速修复方法,可以使用

function getTitle() 
 {
   global $mysql_connection;
   .....

 }
将连接导入函数的作用域

一种高级(而且更干净)的方法是使用一个包含数据库连接的单例对象或静态对象。有关良好示例,请参见此问题:


这可能是因为您引用的是config.php中声明的
$mysql\u connection
,它现在超出了范围。只要只使用一个连接,就可以完全忽略该参数。只需调用
mysql\u查询($query)

将以下内容放入函数中

global $mysql_connection;
发生的情况是,
$mysql\u连接
变量不在函数的范围内

global $mysql_connection;

我以前也遇到过同样的问题。

这是因为$mysql\u连接变量在函数体中不可见。使用

全局$mysql\u连接


在函数的开头

Hi Pekka。。请在此查看您可能会喜欢的帖子:@Fosco我在那里加了2美分。也可以在这里查看我对这个问题的更新(我花了一段时间才找到我想要链接的问题)。有很多正确答案,但这是第一次,所以我声明这是正确答案。我只使用了一个连接,所以你的第一个建议有效。定义“不起作用”。它会抛出一个错误还是什么?