簡體   English   中英

我寫這個函數錯了嗎? 有人可以告訴我我在哪里犯錯嗎?

[英]Did I write this function wrong? Can someone tell me where I am making my mistake?

這是函數:

 <?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,則可以使用,但是所有正則表達式都被弄亂了。 我在這里待了幾個小時,幾乎可以告訴您我是新手,確實可以使用一些幫助。

如注釋中所述,您的connect變量是在函數范圍之外定義的,因此無法使用它。 您需要將該變量作為參數傳遞給函數,如下所示:

 $connect = mysqli_connect('localhost','root','test123','joomla');

 function parseDescription($id, $connect)
 {
    // Your connection code
 }              

這可能比常規的函數編程要困難一些,但是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
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM