0

私のphp mysqlクエリが機能していないか、少なくともそれが私が想定していることです。皆さんが私が見ていない何かに気付くことができれば、それは大歓迎です。ありがとう!

私が受け取っているエラーは次のとおりです。

Notice: Trying to get property of non-object in D:\
Fatal error: Call to a member function free() on a non-object in D:\

varchar を含む 9 つの列があります。

Part Number,Alternate Partnumber,Qty,
Description,Part Condition Code,Price,
Location,Barcode,Consignment

検索バーを作成し、顧客が部品番号を入力できるようにしたいと考えています。その部品番号とその行のすべての情報が検索されます。

私はLuke WellingとLaura ThomsonによるPhpとMysql Web Developmentを使用しているので、章のコードの一部を使用しています。

コードは次のとおりです。

<?php
    //create short variable names
    $searchtype = "Part Number";
    $searchterm = $_POST['searchterm'];

    //echo "$searchtype";
    //echo "$searchterm";

    if(!$searchtype || !$searchterm)
    {
        echo 'You must enter a part number please try again';
        exit;
    }

    if(!get_magic_quotes_gpc())
    {
        $searchtype = addslashes($searchtype);
        $searchterm = addslashes($searchterm);
    }

    @ $db = new mysqli('localhost', 'username', 'password', 'partstest');

    if(mysqli_connect_errno())
    {
        echo 'Error: Could not connect to database. Please try again later.';
        exit;
    }

    //$query = "SELECT $searchterm * FROM inventory WHERE Part Number";
    $query = "select * from inventory where " .$searchtype. " like '%".$searchterm."%'";


    $result = $db->query($query);
    //$result = mysqli_query($db, $query);

    $num_results = $result->num_rows;
    //$num_results = mysqli_num_rows($result);

    echo "<p>Number of books found: ".$num_results."</p>";

    for($i = 0; $i < $num_results; $i++)
    {
        $row = $result->fetch_assoc();
        //$row = mysqli_fetch_assoc($result);
        echo "<p><strong>".($i+1).". Part Number: ";
        echo htmlspecialchars(stripslashes($row['Part Number']));
        echo "</strong><br /> Alternate Part Number: ";
        echo stripslashes($row['Alternate Part Number']);
        echo "<br />Qty: ";
        echo stripslashes($row['Qty']);
        echo "<br />Description: ";
        echo stripslashes($row['Description']);
        echo "<br />Part Condition: ";
        echo stripslashes($row['Part Condition']);
        echo "<br />Price: ";
        echo stripslashes($row['Price']);
        echo "<br />Location: ";
        echo stripslashes($row['Location']);
        echo "<br />Barcode: ";
        echo stripslashes($row['Barcode']);
        echo "<br />Consignment: ";
        echo stripslashes($row['Consignment']);
        echo "</p>";

    }

    $result->free();
    //mysqli_free_result($result);
    $db->close();

    ?>
4

2 に答える 2

0

次のコードの出力を投稿してください。

var_dump(get_object_vars($result));

@ の位置が間違っているため、 $db が空になっているようです

于 2013-01-12T22:14:28.130 に答える
0

あなたがこれを書いたので、あなたの「$ db」オブジェクトは空のようです:

@ $db = new mysqli('localhost', 'username', 'password', 'partstest');

ただし、ここでは @ が間違っています。また、エラーphp-docを見て、オブジェクトの「エコー」を実行して、それらが false か null かを確認する必要があります

于 2013-01-12T22:14:33.227 に答える