2013-07-12 2 views
-1

좋아들, 그래서 게임 서버 데이터베이스, 일부 값을 업데이트하려면 다음 코드를 사용하려고 해요.수는 매개 변수의 수와 일치하지 않습니다 - MySQLi

$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이 표시됩니다.

$ 토큰은 $ 레벨이 번호는 일반적으로 1 내지 50

이다

-100 내지 269000. $ XP 숫자는 통상

보통 -50 10000까지의 숫자

roundsplayed $ 0

$의 totalplaytime 위는 통상 1 1000000

$ steamid00 사이의 숫자 문자열 formatt 임 STEAM_0 : 1 : 23456789와 (과) 일치했습니다.

내가 뭘 잘못하고 있니? 범인

WHERE steamid ='?'" 

답변

0

는 따옴표를 사용하지 말아

WHERE steamid =?" 
관련 문제