mysqli_stmt :: bind_param()错误

时间:2017-09-25 18:07:58

标签: php mysql

我一直致力于数据库管理的更多课程,我只是遇到了麻烦。我与phpMyAdmin,INSERTUPDATEDELETESELECT等基本互动......

在运行update函数时遇到了问题:

  

警告:mysqli_stmt :: bind_param():变量数与 C:\ xampp \ htdocs \ page \ assets \ class.database中预准备语句中的参数数量不匹配.php 253

我一直试图调试它,我不确定为什么这些参数没有被正确计算。这是遇到问题的代码:

if ($stmt = $this->_connection->prepare( $sql ))
{
    $stmt->bind_param($stmt_param, ...$val); /* line 253 */
    $stmt->execute();
    // ... more code ... //
}

$stmt_param已建成:

// bind params
$stmt_param = str_repeat('s', $array_num);
$add_id = 'i';
$stmt_param = substr($stmt_param, 0, -1).$add_id;

$val已建成

foreach($content_array as $key => $value)
{
    $val[] = $value;
}

$sql已建成

/* $table == TABLE_NAME */
/* $table_rows == KEY_VALUES_FROM_ARRAY */
$sql = "UPDATE " . $table . " SET " . $table_rows . " WHERE id = ?";

要调用该函数,我有三个参数:

/*
 * @param $id will determine the unique record
 * @param $content_array an array setup `Column => Value`
 * @param $table which table to query
 */
public function update( $id, $content_array, $table )

所以代码看起来像:

$update = $db->update('7' /* unique id */,
                      array('complete' => '1') /* array with column => value */,
                      'player' /* table name */);

我不确定此代码的哪一部分不正确,我对insert有一个非常类似的功能,它运行完美,我一直在排除故障,但没有任何帮助。

对于完整课程,代码位于Github。我想将问题本地化为我的问题。

0 个答案:

没有答案