致命错误:调用 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->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()。我想不通,为啥会出现此错误?