致命错误:调用 C:\xampp\htdocs\index.php 中布尔值的成员函数 bind_param()

Posted

技术标签:

【中文标题】致命错误:调用 C:\\xampp\\htdocs\\index.php 中布尔值的成员函数 bind_param()【英文标题】:Fatal error: Call to a member function bind_param() on boolean in C:\xampp\htdocs\index.php致命错误:调用 C:\xampp\htdocs\index.php 中布尔值的成员函数 bind_param() 【发布时间】:2018-03-04 14:51:17 【问题描述】:

我正在尝试制作一个网址缩短网站。但是,当我尝试单击提交输入时遇到此错误: 致命错误:调用 C:\xampp\htdocs\index.php 中布尔值的成员函数 bind_param()我见过其他人遇到此问题,但从未设法解决。 提前致谢!

<?php

$db = new mysqli("localhost","root","");

if (isset($_POST['shorten'])) 
//echo "Clicked";
$result = $db->prepare("INSERT INTO links VALUES('',?,'test')");
$result->bind_param('s', $_POST['url_to_shorten']);
$result->execute();
echo "Done.";


?>
<!doctype html>
<html>
<head>
<title>Orix.ml - free link shortener</title>
</head>
<body>
<center>
<h1>ORIX.ML</h1>
<h2>FREE USB SHORTENING SERVICE</h2>
<form action="/" method="POST">
<input type="text" name="url_to_shorten" value="" placeholder="PASTE YOUR LINK HERE">
<input type="submit" name="shorten" value="GO">
</form>
</center>
</body>
</html>

【问题讨论】:

简单;你没有选择数据库。 如果你看到其他人有这个问题,你没有看到使用echo $db-&gt;error; 来查看错误原因的建议吗? 当我说我很蠢的时候,我就是很蠢。谢谢@Fred-ii- 请将此作为答案发布,以便我将其选为最佳答案。 @Barmar 这也很重要。我会保留它作为未来的建议,谢谢! @Fred-ii- 来吧,回答它。我在任何明显的重复项中都找不到这个特殊原因。 【参考方案1】:

正如我在 cmets 中所说,您没有选择数据库。

根据要求:

这一行:

$db = new mysqli("localhost","root","");

应该读作:

$db = new mysqli("localhost","root","", "database");

并将“数据库”替换为您的数据库名称。

文档可以在 PHP.net 上的以下地址找到:

http://php.net/manual/en/function.mysqli-connect.php

从手册中提取的示例以及错误检查:

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

if (!$link) 
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;


echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);

注意:尽管理论上您仍然可以连接,但您将无法查询任何内容。这就是在开发测试期间错误检查很重要的地方。

【讨论】:

以上是关于致命错误:调用 C:\xampp\htdocs\index.php 中布尔值的成员函数 bind_param()的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:调用未定义函数 mb_detect_encoding()

从另一个类调用函数时出现致命错误

致命错误:在第 7 行调用非对象上的成员函数 prepare()。我想不通,为啥会出现此错误?

致命错误:在非对象上调用成员函数 fetch()?

致命错误:未捕获的错误:调用未定义的方法 stdClass::option();

致命错误:调用字符串上的成员函数 prepare()