Reputation: 2289
I was told my query was wrong, but I am not receiving any errors. Nothing is being inserted into my database, so I do not question it is wrong, though I do not see what is wrong in the syntax.
$stmt2 = $con->prepare("INSERT INTO user_players (player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, player11, player12, player13) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) WHERE (user_id=?)");
Does anyone see anything I am missing?
UPDATE to show more code to make more sense of this..
<form action="" method="POST">
<?php
$con = mysqli_connect("localhost", "", "", "");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = mysqli_query($con,"SELECT * FROM user_players");
if(isset($_POST['Add Player'])){
//Variables to post in the bind_param
$insert_user_id = $_POST['user_id'];
$insert_player1 = $_POST['player1'];
$insert_player = $_POST['player2'];
$insert_player = $_POST['player3'];
$insert_player = $_POST['player4'];
$insert_player = $_POST['player5'];
$insert_player = $_POST['player6'];
$insert_player = $_POST['player7'];
$insert_player = $_POST['player8'];
$insert_player = $_POST['player9'];
$insert_player = $_POST['player10'];
$insert_player = $_POST['player11'];
$insert_player = $_POST['player12'];
$insert_player = $_POST['player13'];
$stmt2 = $con->prepare("INSERT INTO user_players (player1, player2, player3, player4, player5, player6,
player7, player8, player9, player10, player11, player12, player13) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) WHERE (user_id=?)");
if ( false===$stmt2 ) {
die('Player Insert prepare() failed: ' . htmlspecialchars($con->error));
}
$stmt2->bind_param('isssssssssssss', $insert_user_id, $insert_player1, $insert_player2, $insert_player3, $insert_player4, $insert_player5, $insert_player6,
$insert_player7, $insert_player8, $insert_player9, $insert_player10, $insert_player11, $insert_player12, $insert_player13);
if ( false===$stmt2 ) {
die('Player Insert bind_param() failed: ' . htmlspecialchars($stmt2->error));
}
$stmt2->execute();
if ( false===$stmt2 ) {
die('Player Insert execute() failed: ' . htmlspecialchars($stmt2->error));
}
}
while($row = mysqli_fetch_array($stmt)) {
$player1 = $row['player1'];
$player2 = $row['player2'];
$player3 = $row['player3'];
$player4 = $row['player4'];
$player5 = $row['player5'];
$player6 = $row['player6'];
$player7 = $row['player7'];
$player8 = $row['player8'];
$player9 = $row['player9'];
$player10 = $row['player10'];
$player11 = $row['player11'];
$player12 = $row['player12'];
$player13 = $row['player13'];
?>
<div class="draftResultsWrap">
<div class="inline">
<?php echo "<div>" . $row['firstname'] . " " . $row['lastname'] . "</div>"; ?>
</div>
<input class="draftBorder" value='<?php echo $player1; ?>'/>
<input class="draftBorder" value='<?php echo $player2; ?>'/>
<input class="draftBorder" value='<?php echo $player3; ?>'/>
<input class="draftBorder" value='<?php echo $player4; ?>'/>
<input class="draftBorder" value='<?php echo $player5; ?>'/>
<input class="draftBorder" value='<?php echo $player6; ?>'/>
<input class="draftBorder" value='<?php echo $player7; ?>'/>
<input class="draftBorder" value='<?php echo $player8; ?>'/>
<input class="draftBorder" value='<?php echo $player9; ?>'/>
<input class="draftBorder" value='<?php echo $player10; ?>'/>
<input class="draftBorder" value='<?php echo $player11; ?>'/>
<input class="draftBorder" value='<?php echo $player12; ?>'/>
<input class="draftBorder" value='<?php echo $player13; ?>'/>
</div>
Upvotes: 0
Views: 41
Reputation: 3765
using a where == AnyKey on an insert, that it could be your issue.
Being that I am not sure if you are trying to do an update or insert I am going to say go with the UPSERT, see this SO (stackoverflow) Q/A
I think......without knowing the values of ?,?,?,?,?,?,?,?,? can't say there is nothing wrong with the values but i really think it's the where clause that is stopping the insert.
The User ID should be in the insert not in the where
should be something like this
insert(user_id,...,...) values(@user_id,...,...,...)
then the user id (FK) you need will be in the table so you can later
select * from users join user_stuff on user_id
perhaps you are trying to update the values, in that case you should have an update statement with the where clause
also noteworthy, you should consider normalising you DB structure, not player1,2,3,4,5
table: UserPlayers [ Id: UserId: Player ]
this will save you so much trouble in the future! i promise
Upvotes: 1
Reputation: 39424
Please try changing the prepared statement to this:
INSERT INTO user_players (user_id, player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, player11, player12, player13) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Upvotes: 0