1

データ入力のphpコードがあります。簡単にアクセスできるように、ユーザーが別のページに表示されるテーブルを選択できるようにしています。選択したテーブルを「maintable」テーブルに挿入するコードを取得できますが、そのテーブルから情報を取得できません。同じページでそのデータベースに挿入していても、挿入テーブルファイルは現在のテーブル名を取得しません。この問題を解決できれば、あの問題も解決できると思います。maintable テーブルには、他のデータベースの 1 つのレコードを含む 1 つの列しかありません。ユーザーが別のデータベース内の他のすべてのテーブルを表示できるため、ユーザーがこれに直接アクセスできないように、これを行っています。

data-entry-header.php ファイルには接続ステートメントが含まれています。$connect は、このデータベース接続に使用しているものです。結果として得られるのは、テーブル名のない main-form.php ファイルです。したがって、エラーは発生しません。テーブル名を取得していないだけです。挿入ステートメントに同じものを使用したため、接続ステートメントとテーブル/列の名前が正しいことはわかっています。

include 'data-entry-header.php';
    $keys = array();

    /* Query for Main Table Value */
    $string = 'SELECT TableName FROM maintable';
    $resultMain = mysqli_query($connect, $string) or die(mysqli_error($link));
    while ($rowMain = mysqli_fetch_row($resultMain)){
        $table = $rowMain[0];
    }

    /* Display Message or Table */
    if ($table = NULL || $table = "" ){
        echo 'No Main Table has been set. Go to the <a href="set-main-table.php">Set Main Table</a> page to select a Main Table.';
    }
    else {
        include 'main-form.php';
    }

    /* Get footer Contents */
    include "../footer.php";
4

3 に答える 3

1

あなたのコードには他にも多くの欠陥があります。

  • の代わりに、機密情報を誰にも公開しないdie()、より便利なものを使用する必要があります。trigger_error();
  • 1 つの結果のみを期待している場合、ループには意味がありません
  • PHP は緩やかに型付けされた言語です。過度な条件は必要ありません。if($table)ほとんどの場合、これで十分です
  • 意味のある(そして一貫した)変数名を使用することも大いに役立ちます

    $sql = 'SELECT TableName FROM maintable';
    $res = mysqli_query($connect, $sql) or trigger_error(mysqli_error($connect));
    //                                            $connect, not $link ^
    $row = mysqli_fetch_row($res);
    
    /* Display Message or Table */
    if (!$row){
        echo 'No Main Table has been set. Go to the <a href="set-main-table.php">Set Main Table</a> page to select a Main Table.';
    } else {
        $table = $row[0];
        include 'main-form.php';
    }
    
于 2013-04-19T14:16:18.533 に答える
-1

または死ぬ代わりに、これを下に追加してください

echo mysqli_error($link);

また、あなたのクエリでは、そうではありませんcolumnName FROM tableか?

于 2013-04-19T13:58:42.023 に答える