mysqli查询不返回任何结果或错误php代码

mysqli查询不返回任何结果或错误php代码,php,mysqli,Php,Mysqli,我有一个数据输入php代码。我允许用户选择要在单独页面上显示的表,以便于访问。我可以获取将所选表插入maintable表的代码,但无法从该表中获取任何信息。插入表文件甚至不会从中获取当前表名,即使是在我插入数据库的同一页上。所以我想如果我能解决这个问题,我也能解决那个问题。maintable表在我的另一个数据库中只有一列和一条记录。我这样做是为了用户不能直接访问它,因为他们可以看到不同数据库中的所有其他表 data-entry-header.php文件包含我的connect语句,$connect

我有一个数据输入php代码。我允许用户选择要在单独页面上显示的表,以便于访问。我可以获取将所选表插入maintable表的代码,但无法从该表中获取任何信息。插入表文件甚至不会从中获取当前表名,即使是在我插入数据库的同一页上。所以我想如果我能解决这个问题,我也能解决那个问题。maintable表在我的另一个数据库中只有一列和一条记录。我这样做是为了用户不能直接访问它,因为他们可以看到不同数据库中的所有其他表

data-entry-header.php文件包含我的connect语句,$connect是我用于此数据库连接的语句。结果,我得到的是没有表名的main-form.php文件。所以它没有抛出任何错误,只是没有得到表名。我知道我的connect语句和表/列名是正确的,因为我在insert语句中使用了相同的名称

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";
你把赋值和比较搞混了==

您可能应该尝试:

if ($table == NULL || $table == "" ){

而不是死亡,只需在下面添加这个

echo mysqli_错误$link


另外,在您的查询中,它不是表中的columnName吗?

您的代码还有许多其他错误

而不是死,你必须使用更方便的触发错误;不会向任何人透露敏感信息。 如果您只期望一个结果,那么循环中就没有点 PHP是一种松散类型的语言。不需要过多的条件。如果$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';
}

您是否启用了错误报告功能?直接在数据库中运行查询并查看返回的内容。我想TableName应该是fieldname或columname?请尝试{$resultMain=mysqli_query$connect,$string;}catch{echo mysqli_error;}也许?@Dave否,mysqli_查询不会引发任何异常。我更喜欢使用if empty$table{}@lefty55104-请编辑您的问题,以表明您的意思是如果$table==NULL | |$table=={-只是为了避免同样的想法…因为我不熟悉它,为什么我要选择echo而不是die?我目前处于调试模式,所以错误代码很有用。我计划在上线后在那里发布一条消息。我将检查触发器错误。我很高兴听到我不需要循环。我想有办法,但我不确定如何进行使用trigger_error时,您根本不需要特殊的调试模式。但是,每次需要时,您都会收到错误消息。这就是使用此功能的目的。不要盲目:不管模式或其他条件如何,您都需要错误消息。尽管在现场回传错误消息是自杀
$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';
}