例如:
<?
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文件包括与数据库的连接和数据库的选择。那里没有错误。
什么似乎是问题?
答案 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
在函数的开头