以下是功能:
<?php
$connect = mysqli_connect('localhost','root','test123','joomla');
function parseDescription($id)
{
$sql = "SELECT raw_description FROM n0dap_jevents_vevdetail WHERE evdet_id='$id'";
$result=mysqli_query($connect,$sql);
if (mysqli_num_rows($result) > 0)
{
return mysqli_fetch_array($result);
}
}
?>
以下是错误:
注意:未定义的变量:在第6行的C:\ xampp \ htdocs \ Try \ includes \ function.inc.php中连接
警告:mysqli_query()要求参数1为mysqli,在第6行的C:\ xampp \ htdocs \ Try \ includes \ function.inc.php中给出null
警告:mysqli_num_rows()要求参数1为mysqli_result,在第7行的C:\ xampp \ htdocs \ Try \ includes \ function.inc.php中给出null
如果我转换所有这些Mysql而不是Mysqli它可以工作,但然后我所有的正则表达式都搞砸了。我已经在这几个小时了,这几乎告诉你我是一个新手,真的可以使用一些帮助。
答案 0 :(得分:2)
正如评论中所述,您的connect
变量是在函数范围之外定义的,因此它无法使用它。您需要将该变量作为参数传递给您的函数:
$connect = mysqli_connect('localhost','root','test123','joomla');
function parseDescription($id, $connect)
{
// Your connection code
}
答案 1 :(得分:1)
这可能比常规函数式编程有点困难,但oop
是管理代码的好方法..
这里我将$ connect声明为类
的私有变量如果需要有关oop
..
<?php
class MyClass
{
private $connect;
function __construct()
{
$this->connect = mysqli_connect('localhost', 'root', 'test123', 'joomla');
}
function parseDescription($id)
{
$sql = "SELECT raw_description FROM n0dap_jevents_vevdetail WHERE evdet_id='$id'";
$result = mysqli_query($this->connect, $sql);
if (mysqli_num_rows($result) > 0)
{
return mysqli_fetch_array($result);
}
else
{
return false;
}
}
}
$object = new MyClass();
$answer = $object->parseDescription($id);
if($answer)
{
// do your stuff here
}
?>