我一直致力于数据库管理的更多课程,我只是遇到了麻烦。我与phpMyAdmin,INSERT
,UPDATE
,DELETE
,SELECT
等基本互动......
在运行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。我想将问题本地化为我的问题。