PHP函数中的mysql函数

时间:2010-08-05 17:05:01

标签: 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'];
}
?>

每次我想提交MySql查询时,我必须始终在函数内包含config.php,否则它不起作用。 我尝试在文件的开头包含但仍然没有结果。

Config.php文件包括与数据库的连接和数据库的选择。那里没有错误。

什么似乎是问题?

4 个答案:

答案 0 :(得分:4)

$mysql_connection在函数范围内是未知的。

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

$result = mysql_query($query);

这样,您的mySQL调用无需任何额外步骤即可运行。

如果您想保留标识符(如果您打开了多个连接,则应该打开),作为快速修复,您可以使用

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

 }

将连接导入函数的范围。

高级(并且稍微更清晰)的方法是使Singleton或静态对象包含数据库连接。请参阅此问题以获得良好示例:

答案 1 :(得分:2)

那是因为你引用了在{config.php中声明的$mysql_connection,现在已超出范围。只要您只使用一个连接,就可以完全省略该参数。只需致电mysql_query($query);

答案 2 :(得分:1)

将以下内容放入您的功能中。

global $mysql_connection;

发生的事情是您的$mysql_connection变量不在函数范围内。

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

答案 3 :(得分:1)

这是因为$ mysql_connection变量在函数体中不可见。使用

global $ mysql_connection

在函数的开头