【发布时间】:2016-07-16 05:42:55
【问题描述】:
我遇到了与主题相同的问题,这是代码。
脚本 A:
$con = mysqli_connect('localhost', 'root', '', 'mysql');
以上内容很好,所以我在这里排除了die() 子句,以便大家更容易阅读。
脚本 B:
function get_news(){
/* a select query */
$result = mysqli_query($con, $news_sql)
or die(mysqli_error($con);
/* other codes follow */
};
脚本 C:
require_once "Script B";
get_news();
上述失败,经过一些测试,我确认问题出在脚本 B 中的 var $con 上。
至少有两种方法可以解决这个问题:
a) 将 $con 替换为 mysqli_connect();
b) 在脚本 B 的函数中再次定义 $con
虽然这解决了我的问题,但似乎两者都不是好的做法。我应该将$con 定义为$_global var 吗?您能否建议其他更好的方法。
非常感谢!
脚本B原代码:
function get_news(){
$news_sql = "SELECT * from pink_news ORDER BY news_id DESC LIMIT 3";
$result = mysqli_query($con, $news_sql)
or die(mysqli_error($con));
while ($rows = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
echo "<div class='news'><ul><li>";
echo "<img src='" . $rows['img'] . "'>";
echo "<h2>" . $rows['headline'] . "</h2>";
echo "<p>" . $rows['content'] . "</p>";
echo "</li></ul></div>";
};
};
【问题讨论】:
-
将其赋值为全局变量 global $con;或者在您的页面中包含脚本 a 并将参数传递给函数 get_new($con);
-
非常感谢 jothi,这有帮助!