【问题标题】:Mysqli Connection ErrorMysqli 连接错误
【发布时间】:2013-11-29 03:51:39
【问题描述】:
Fatal error: Call to a member function bind_param() on a non-object

所以我试图将一些信息从表单保存到我的数据库,但尝试保存时出现此错误!,他是 mysql 连接的代码

<?php
$mysql_host     = "localhost";
$mysql_username = "mydb";
$mysql_password = "db";
$mysql_database = "mydbase";

$mysqli  = new Mysqli($mysql_host, $mysql_username, $mysql_password, $mysql_database);
$prepare = $mysqli->prepare("INSERT INTO `datos`(`name`,`email`,`phone`,`zipcode`,`message`) VALUES (?,?,?,?,?)");
$prepare->bind_param("ssssss", $_POST['name'], $_POST['email'], $_POST['phone'], $_POST['zipcode'], $_POST['message']);
$prepare->execute();
$mysqli->close();
?>

我想弄清楚但做不到!谢谢!

【问题讨论】:

  • 一方面,您的 ssssss = 6 并且您的 POST 值 = 5 // 删除一个 s
  • 除了 Fred 所说的,您可能应该使用sssis,因为邮政编码始终是整数,对吧?
  • 尝试在$prepare = $mysqli-&gt;prepare 行之后添加echo mysqli_error($mysqli); - 表定义的sql 可能不正确。
  • @Arian,邮政编码不是整数,加拿大或许多其他国家的邮政编码也不是整数。
  • @Arian:您偶尔会听到关于将事物存储在数据库中的一种智慧,即“学习如何区分数字和看起来像数字的事物”。例如,电话号码并不是真正的整数……在美国,它是一个 10 个字符长的标识符,只是碰巧由数字组成。邮政编码、信用卡号等也是如此。

标签: php html mysql forms mysqli


【解决方案1】:

这不是连接错误,而是准备错误。在顶部添加这些行

ini_set('display_errors',1);
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

看看它说了什么

【讨论】:

  • Fatal error: Uncaught exception 'mysqli_sql_exception' with message 'Column count doesn't match value count at row 1 这就是我得到的错误!
  • 这显然不适用于此查询。检查引发此错误的查询
【解决方案2】:

您的 ssssss = 6 和您的 $_POST 值 = 5

  • 删除s 之一

但是,根据您的数据库/字段的设置方式,Arian stated 可能需要为sssis

试试非此即彼。

在某些情况下,这可能不是必需的,但它们必须在数字上匹配 5 &amp; 5 您的代码。

【讨论】:

    猜你喜欢
    • 2012-12-08
    • 2011-04-21
    • 1970-01-01
    • 2015-06-04
    • 2013-07-12
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多