2013-04-06 4 views
1

나에게 곰이 오류에 대한 많은 게시물이 있음을 알고있다. 그러나 나는 그것들을 들여다 보았고 나의 특별한 문제에 대한 해결책을 찾지 못하는 것처럼 보였다.경고 : mysqli_stmt :: bind_param() 변수의 수가 준비된 문에서 매개 변수의 수와 일치하지 않는다.

"isi", "sss"및 "sii"를 시도했지만 작동하지 않습니다. 어떤 도움을해야할지 잘 모를 것입니다.

var_dump(); 내 문제에 대한 더 많은 정보를 찾으려면. 나는 PHP에 대해서 매우 익숙하다.

나를 도와 주셔서 감사합니다! 반복되는 주제에 대해 죄송합니다.

코드 :

<tr> 
      <form action="Voting_action.php" method="post"> 
      <td><br /> 
       <input type="submit" class="buttontable1" value="<?php echo $random; ?>" name="name"/> 
      </td> 
       </form> 
       <form action="Voting_action.php" method="post"> 
      <td><br /> 
       <input type="submit" class="buttontable1" value="<?php echo $random3; ?>" name="name"/> 
      </td> 
       </form> 
     </tr> 
     <tr> 
      <form action="Voting_action.php" method="post"> 
      <td><br /> 
       <input type="submit" class="buttontable1" value="<?php echo $random6; ?>" name="name"/> 
      </td> 
       </form> 
       <form action="Voting_action.php" method="post"> 
      <td><br /> 
       <input type="submit" class="buttontable1" value="<?php echo $random4; ?>" name="name"/> 
      </td> 
       </form> 
     </tr> 
     <tr> 
      <form action="Voting_action.php" method="post"> 
      <td><br /> 
       <input type="submit" class="buttontable1" value="<?php echo $random5; ?>" name="name"/> 
      </td> 
       </form> 
       <form action="Voting_action.php" method="post"> 
      <td><br /> 
       <input type="submit" class="buttontable1" value="<?php echo $random2; ?>" name="name"/> 
      </td> 
</tr> 

<?php 
include ('login-home.php'); 
$mysqli = new mysqli("", "", "", ""); 
if ($mysqli->connect_error) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_error . ") " . $mysqli->connect_error; 
} 

if (!($stmt = $mysqli->prepare("INSERT INTO table(id, name, votes) VALUES (id, '".$_POST['name']."', '".$votes."')"))) { 
    echo "Prepare failed: (" . $mysqli->error . ") " . $mysqli->error; 
} 
$id = 1; 

이 줄 :

if (!$stmt->bind_param("isi",$id, $_POST['name'], $votes)) { 
    echo "Binding parameters failed: (" . $stmt->error . ") " . $stmt->error; 
} 

if (!$stmt->execute()) { 
    echo "Execute failed: (" . $stmt->error . ") " . $stmt->error; 
} 
$stmt->close(); 
?> 

답변

1

그냥 완전히 준비된 명령문의 목적을 물리 치고, 거기에 값을 덤프 이후 귀하의 질의 준비가 0 매개 변수가 포함되어 있습니다. 대신 다음을 시도하십시오.

if (!($stmt = $mysqli->prepare("INSERT INTO table(id, name, votes) VALUES (?,?,?)"))) { 

그런 다음 계속하십시오.

+0

감사합니다. – vince

관련 문제