为什么我会得到" mysqli_stat()期望参数1是mysqli"错误?

时间:2016-10-01 12:05:36

标签: php mysql mysqli

我是自学,我正在尝试制作一个工具,让我输入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文件,但是给了我一个错误。我输入的功能是&#39; mysqli_stat($ conn);&#39;。其他功能似乎也无效。

<?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>

1 个答案:

答案 0 :(得分:1)

您无法通过表单请求传递resource个句柄。只能将文字(字符串,整数)作为$_POST$_GET变量发送。对象和资源(数据库,文件I / O句柄)不胜。

如果您要查看第二部摘录中生成的HTML,请参阅:

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

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