繁体   English   中英

为什么我可能会收到“mysqli_stat() 期望参数 1 为 mysqli”错误?

[英]Why might I be getting "mysqli_stat() expects parameter 1 to be mysqli" error?

我是自学的,正在尝试制作一个工具,让我输入要实时执行的 mysqli 函数,以帮助我更好地了解它们的作用。

这是我开始的 html 文件。

<form action="index.php" method="post">
<input type="text" placeholder="User Name" name="username">
<input type="password" placeholder="Password" name="userpassword">
<input type="submit" value="Connect">
</form>

这是连接的php文件,然后要求初始功能。

<?php
$username = trim($_POST['username']);
$userpassword = trim($_POST['userpassword']);
echo $username;
$conn = mysqli_connect("localhost", $username, $userpassword);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo " connected successfully.<br />";
?>
<form action="action.php" method="post">
<input type="hidden" value=$conn name="conn">
<input type="text" placeholder="MySQLi Operation" name="operation">
<input type="submit" value="Ok">
</form>

最后是应该执行该函数的 php 文件,但给了我一个错误。 我输入的函数是'mysqli_stat($conn);'。 其他功能似乎也不起作用。

<?php
$operation = trim($_POST['operation']);
$conn = trim($_POST['conn']);
eval($operation);
?>
<form action="action.php" method="post">
<input type="text" placeholder="MySQLi Operation" name="operation">
<input type="submit" value="Ok">
</form>

您不能通过表单请求传递资源句柄。 只有文字(字符串、整数)可以作为$_POST$_GET变量发送。 对象和资源(数据库、文件 I/O 句柄)不会。

如果您要查看第二个摘录的结果 HTML,您会看到:

  <input type="hidden" value=resource id #2 name="conn">
                               ↑↑↑↑↑↑↑↑↑↑

您必须重新在测试脚本中设置 mysqli $conn (另外,适合测试,但不要在生产代码中使用这样的结构。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM