0

これを機能させるのに問題があります。mySQLステートメントは、直接プラグインすると機能します。$ dbcは、スクリプトの前半でプルするので正しいです。

助けてもらえますか?

//gets the username from the users table by looking for given id
function findUserNameFromID($userID){
   global $dbc;
   $getUser_query = 'SELECT username FROM forum_users WHERE userID ='.$userID;
   echo $getUser_query;
   //Errors on this line:
   $results = mysqli_query($dbc, $getUser_query) or die("Error: ".mysqli_error($dbc));
   $row = mysqli_fetch_array($results);
   return $row['username'];
}

編集:エラーを忘れた:エラー:SQL構文にエラーがあります。1行目の「>」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

編集:ここに全ページコードがあります:

    //gets the username from the users table by looking for given id
    function findUserNameFromID($userID){
        global $dbc;
        $getUser_query = 'SELECT username FROM forum_users WHERE userID ='.$userID;
        echo $getUser_query;
        $results = mysqli_query($dbc, $getUser_query) or die("Error: ".mysqli_error($dbc)." ".__LINE__);
        $row = mysqli_fetch_array($results);
        return $row['username'];
    }

    function findUserIDFromName($username){
        global $dbc;
        $getUser_query = "SELECT userID FROM forum_users WHERE username = $username";
        $results = mysqli_query($dbc, $getUser_query);
        $row = mysqli_fetch_array($results);
        return $row['userID'];
    }

    $getThreads_query = "SELECT * FROM forum_threads ORDER BY lastTime, id";

    $results = mysqli_query($dbc, $getThreads_query);

    // show the data
    while ($row = mysqli_fetch_array($results))
    {
       echo "<p>";
       echo $row['title']."<br />";
       echo "Created by ".findUserNameFromID($row['creatorUserID']."<br />");
       //echo "Created on ".$row['createDate'];
       echo "</p>";

    }

    mysqli_close($dbc);

    ?>
    </body>
</html>
4

2 に答える 2

0

まず、このようにSQLにパラメーターを埋め込むのではなく、バインドされた変数を使用する必要があります(理由については、http://bobby-tables.com/を参照してください)。

$userIDに">"が含まれていない限り、質問に入力したエラーメッセージはクエリと一致しません。これは、メッセージまたは$userIDが整数であるというアサーションが正しくないことを意味します。

于 2013-02-11T22:04:02.477 に答える
0

エラーが見つかりました。

の閉じ括弧echo "Created by ".findUserNameFromID($row['creatorUserID']."<br />");が間違った場所にある"<br />"ため、がに含まれていました$userID

自分への注意:ブラケットがどこにあるかを確認してください。

于 2013-02-15T04:08:35.437 に答える