簡體   English   中英

PHP:致命錯誤:調用未定義的方法mysqli

[英]PHP: Fatal error: Call to undefined method mysqli

好的,我上周問過一個問題。 我得到了一些答案,其中幾個沒有幫助; 但是,我決定重新檢查我的所有關系。 這確實解決了一些問題,因為我必須在這里檢查以使其正常運行。 接下來出於某種原因,我沒有檢查我的查詢,以確保它在mysql中工作。 我還注意到我的版本有一種方法可以將查詢輸出到PHP代碼中。 現在我遇到了錯誤代碼:

致命錯誤:調用未定義的方法mysqli :: SELECT tblConference.colConferenceName,tblSchool.colSchoolName,tblSchool.colClass,tblSurface.colSurfaceName,tblSurface.colSurfaceCompany,tblStadium.colStadiumName,tblStadium.colAddress,tblStadium.colCity,tblStadium.colRegion,tblStadium.colCounty ,tblStadium.colCapacity FROM tblStadium,tblConference,tblSurface,tblSchool,tblStadiumSchool WHERE tblConference.colConferenceID = tblSchool.colConferenceID AND tblSurface.colSurfaceID = tblStadium.colSurfaceID AND tblStadium.colStadiumID = tblStadiumSchool.colStadiumID AND tblSchool.colSchoolID = tblStadiumSchool.colSchoolID AND tblSchool.colSchoolName喜歡在第24行的C:\\ xampp \\ htdocs \\ stadium \\ alpha \\ a.php中的tblSchool.colSchoolName()訂單

現在這是我的新代碼,我會嘗試讓它看起來中等,

    $mysqli = new mysqli("localhost", "root", "", "dbstadium");
    /* check connection */
      if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error);
        exit();
        }
    /* your sql query */

$ sql =“SELECT tblConference.colConferenceName,tblSchool.colSchoolName,tblSchool.colClass,tblSurface.colSurfaceName,tblSurface.colSurfaceCompany,tblStadium.colStadiumName,tblStadium.colAddress,tblStadium.colCity,tblStadium.colRegion,tblStadium.colCounty,tblStadium.colCapacity FROM tblStadium ,tblConference,tblSurface,tblSchool,tblStadiumSchool WHERE tblConference.colConferenceID = tblSchool.colConferenceID AND tblSurface.colSurfaceID = tblStadium.colSurfaceID AND tblStadium.colStadiumID = tblStadiumSchool.colStadiumID AND tblSchool.colSchoolID = tblStadiumSchool.colSchoolID AND tblSchool.colSchoolName LIKE \\'A%\\ '訂購tblSchool.colSchoolName“;

/* query your db */
if ($result = $mysqli->$sql($sql)) {
    /* fetch associative array */
    while ($row = $sql->fetch_assoc())
    { /* display row */    
        echo '<p>School Name: ' . $row['colSchoolName'] . '</br>Conference: ' . $row['colConferenceName'] . '</br>Class: ' . $row['colClass'] . '</br>Stadium Name: ' . $row['colStadiumName'] . '</br>Address: ' . $row['colAddress'] . '</br>City: ' . $row['colCity'] . '</br>County: ' . $row['colCounty'] . '</br>Region: ' . $row['colRegion'] . '</br>Capacity: ' . $row['colCapacity'] . '</br>Surface Type: ' . $row['colSurfaceName'] . '</br>Surface Company: ' . $row['colSurfaceCompany'] . '</br>Year Installed: ' . $row['colSurfaceYear'] . '</p>';
    }
    /* free result set */
    $result->free();
}
    /* close connection */
    $mysqli->close();

現在我不確定問題是什么。 我一直試圖讓這個工作。 BTW只是讓你知道查詢和連接應該不是問題。 如果他們是我想念的東西,請告訴我。

有你的問題:

if ($result = $mysqli->$sql($sql)) {

您基本上調用的方法與SQL語句的名稱相同,即SELECT tblConference [...] 顯然,這種方法不存在。 相反,嘗試mysqli::query

if ($result = $mysqli->query($sql)) {

順便說一句,另一個錯誤是在這一行:

while ($row = $sql->fetch_assoc())

$sql仍然是你的SQL語句。 你想要的是迭代你輸入變量$resultmysqli_result對象:

while ($row = $result->fetch_assoc())

這應該做到這一點

$mysqli = new mysqli("localhost", "root", "", "dbstadium");
if (mysqli_connect_errno()) { // check connection
    printf("Connect failed: %s\n", mysqli_connect_error);
    exit();
}
    // your sql query 
    $sql = "SELECT tblConference.colConferenceName, tblSchool.colSchoolName, tblSchool.colClass, tblSurface.colSurfaceName, tblSurface.colSurfaceCompany, tblStadium.colStadiumName, tblStadium.colAddress, tblStadium.colCity, tblStadium.colRegion, tblStadium.colCounty, tblStadium.colCapacity FROM tblStadium, tblConference, tblSurface, tblSchool, tblStadiumSchool WHERE tblConference.colConferenceID = tblSchool.colConferenceID AND tblSurface.colSurfaceID = tblStadium.colSurfaceID AND tblStadium.colStadiumID = tblStadiumSchool.colStadiumID AND tblSchool.colSchoolID = tblStadiumSchool.colSchoolID AND tblSchool.colSchoolName LIKE \'A%\' ORDER BY tblSchool.colSchoolName";
        if ($result = $mysqli->query($sql)) { // query your db
            while ($row = $result->fetch_object())// fetch object
            {  // display row    
                echo "<p><div>School Name: {$row->colSchoolName}</div><div>Conference: {$row->colConferenceName}</div><div>Class: {$row->colClass}</div><div>Stadium Name: {$row->colStadiumName}</div><div>Address: {$row->colAddress}</div><div>City: {$row->colCity}</div><div>County: {$row->colCounty}</div><div>Region: {$row->colRegion}</div><div>Capacity: {$row->colCapacity}</div><div>Surface Type: {$row->colSurfaceName}</div><div>Surface Company: {$row->colSurfaceCompany}</div><div>Year Installed: {$row->colSurfaceYear}</div></p>";
            }//end while loop
            $result->free(); // free result set
        }//end if
$mysqli->close(); // close connection

暫無
暫無

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

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