也许我是新手,但我不知道我在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 。但我在代码中看不到任何错误......
答案 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");