首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqli_stmt::bind_param():类型定义字符串中的元素数与使用数组的绑定变量数不匹配

问mysqli_stmt::bind_param():类型定义字符串中的元素数与使用数组的绑定变量数不匹配
EN

Stack Overflow用户
提问于 2013-11-14 00:21:55
回答 1查看 806关注 0票数 0

我想要向表中添加一些字段,但是我得到了这个错误:

代码语言:javascript
复制
Fatal error: Call to a member function bind_param() on a non-object in C:\wamp\www\GuildSite\Include\Database.php on line 69

这是我必须插入到表中的函数:我确实将$stmt ===移到了foreach循环之前

代码语言:javascript
复制
public function myinsert($sqlInsert,$param)
{
$stmt = $this->_connection->prepare($sqlInsert) ;
if ($stmt === FALSE) 
{
  die($this->_connection->error);
}
echo 'Parameters number: ' . sizeof($param) ;
foreach ( $param as $key => $field )
{
  $stmt->bind_param ( $key , $field ) ;
}

$result = $stmt->execute() ;
$stmt->close();
return $result ;
}

在包含表单的页面中,我有这些参数,下面是我调用函数的方式:

代码语言:javascript
复制
$param[':name'] =$_POST["personaName"];
$param[':email'] = $_POST["email"];
$param[':pass'] = $_POST['password'] ;
$sqlInsert = "INSERT INTO `new_member`(`persona_name`, `email`, `password`) "
      . "VALUES (':name', ':email', ':pass');";
$db->myinsert($sqlInsert , $param) ;

在值周围的$sqlInsert no‘中有一个小错误。这是已排序的

我做错了什么?

在表中插入新行后,我确实从phpMyadmin复制了sql insert。

我确实试着执行了

代码语言:javascript
复制
$result = $stmt->execute($param) ;

但是它仍然不会在表中插入任何字段。

这是我的数据库连接

代码语言:javascript
复制
public function __construct()
{
  try
  {
    $this->_connection = new mysqli(DB_SERVER,DB_USER,DB_PASS,DB_NAME) ;
  } 
  catch (Exception $e) 
  { 
    echo $e->errorMessage(); 
  }
}

当我检查数组的大小时,得到的大小是3

EN

回答 1

Stack Overflow用户

发布于 2013-11-14 04:50:30

似乎您在bind_param()中使用了错误的参数。必须指定一个字符串以将参数类型指示为第一个参数。因此,您可以在运行时检索bind_param()所需的数据类型首字母,如下所示:

代码语言:javascript
复制
$types = '';
foreach ( $param as $key => $field )
{
  $types .= gettype($field)[0];
}

现在,它可以用作bind_param()的第一个参数。此外,仅查看文档,该函数似乎不允许命名参数,只允许索引参数。因此,继续使用bind_param()执行查询似乎非常困难。这个函数不适合你的用例。您可以使用PDO mysql接口和支持命名参数的PDO::bindValue()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19959006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档