好的,我正在尝试使用以下代码来更新游戏服务器数据库的一些值。
$db1 = "versound_store";
//connection to the database
$mysqli = new mysqli($hostname, $sqluser, $sqlpass, $db1);
if( $stmt = $mysqli->prepare("UPDATE vxp_users SET tokens =?, xp =?, level =? WHERE steamid ='?'"))
{
$stmt->bind_param('isss', $tokens, $xp, $level, $steamid00);
$stmt->execute();
$stmt->close() or trigger_error($db->error);
}
else {
printf("Prep statment failed: %s\n", $mysqli->error);
}
$mysqli->close();
$db2 = "versound_stats";
$mysqli = new mysqli($hostname, $sqluser, $sqlpass, $db2);
if($stmt = $mysqli->prepare("UPDATE ttt_stats SET roundsplayed =?, playtime =? WHERE steamid ='?'"))
{
$stmt->bind_param('iis', $roundsplayed, $totalplaytime, $steamid00);
$stmt->execute();
$stmt->close() or trigger_error($db->error);
}
else {
printf("Prep statment failed: %s\n", $mysqli->error);
}
$mysqli->close();
但是,当然,对于这两个查询,我都得到Number of variables doesn't match number of parameters in prepared statement on line 64
.
$tokens 是一个通常在 -50 到 10000 之间的数字。
$xp 是一个通常介于 -100 和 269000 之间的数字。
$level 是一个通常在 1 到 50 之间的数字。
$roundsplayed 是一个大于 0 的数字。
$totalplaytime 是一个通常在 1 到 1000000 之间的数字。
$steamid00 是一个格式为 STEAM_0:1:23456789 的字符串。
我究竟做错了什么?