php函数中的参数出错

时间:2016-05-28 18:45:38

标签: php html mysql

也许我是新手,但我不知道我在PHP中的第一个功能出了什么问题。它似乎没有正确地获取参数,因为如果我使用函数粘贴代码,一切都很好。 我只是尝试使用sql表中引用其名称的内容生成一个html表。这里的代码简化了:

[conexion.php]

<?php

    $host = "localhost";
    $user = "root";
    $pw = "";
    $db = "complejo_turistico";
    $tabla = "";
    $con = mysqli_connect($host,$user,$pw) or die ("Problems connecting".mysqli_error($con));
    $selectDB = mysqli_select_db($con,$db);

?>

[的index.php]

<?php
include("init.php");
include("conexion.php");
include("tables.php");
?>
<!DOCTYPE html>
<body>

    <?php 
        createTable("admin"); 
    ?>

</body>
</html>

[tables.php]

<?php

function createTable($table){


            if (mysqli_select_db(mysqli_connect("localhost","root",""),"complejo_turistico")) {

            $select = mysqli_query(mysqli_connect("localhost","root",""),"SELECT * FROM ".$table.";");
        ?>
        <table border="1">
            <tr>
                <th>Code</th>
                <th>Func</th>
            </tr>
            <?php
            while ($sel = mysqli_fetch_array($select)) {
                ?>
                <tr>
                    <td><?php echo $sel['cod_emp'];?></td>
                    <td><?php echo $sel['function'];?></td>

                </tr>
                <?php
            }
            echo "</table>";
        }
    }

    ?>

这是错误丢弃:

  

警告:mysqli_fetch_array()要求参数1为mysqli_result,第23行的/opt/lampp/htdocs/complejo/tables.php中给出布尔值

和第23行当然是while和fetch数组是......

在我看来,它并没有在函数中使用参数$ table,这就是为什么数组不能被映射...因为sql查询丢弃错误和$ select被转换为boolean 。但我在代码中看不到任何错误......

2 个答案:

答案 0 :(得分:0)

这意味着$select是一个布尔值。使用mysli_query函数可能会发生这种情况。您正在使用的函数在查询失败时返回false,在成功时返回mysqli_result对象。

因此,您必须检查您的$con是否正确,xampp已启动并正在运行,或者您是否在该时间点连接了互联网。

为避免错误检查$select是否为假,如果是,请勿尝试获取阵列。

答案 1 :(得分:0)

尝试在连接字符串中声明工作数据库,而不是稍后使用mysqli_select_db。您可以在下面的示例中根据需要设置charset。

$con = mysqli_connect($host,$user,$pw,$db) 
or die ("Problems connecting".mysqli_error($con));
mysqli_set_charset($con, "utf8");