Re: Re: Problems w/ insert
Jim Giner <[email protected]>
| Newsgroups | gmane.comp.php.database |
|---|---|
| Message-ID | <[email protected]> |
On 9/11/2012 12:04 AM, Matt Pelmear wrote: > Ethan, > > I am curious why you are using mysqli_stmt_bind_result() on a statement > that is an INSERT query? I don't use mysqli, but as I read the > documentation it seems to me that this method is intended to bind > results from a SELECT query into variables so that you can simply call > mysqli_stmt_fetch() in a loop and have the variables magically contain > the data from the next row. > > Perhaps mysqli is confused because you are both mapping data to be bound > (with mysqli_stmt_bind_param()) and to be returned (with > mysqli_stmt_bind_result()) on the same INSERT query? > > If you are just trying to insert, you should only need > mysqli_stmt_bind_param() (which, by my count, has one parameter too many > right now in your code) and mysqli_stmt_execute() (and probably not > mysql_stmt_bind_param() and mysql_stmt_fetch()). See "Example #2" here: > http://us.php.net/manual/en/mysqli-stmt.execute.php > > -Matt > > On 09/10/2012 08:29 PM, Karl DeSaulniers wrote: >> >> On Sep 10, 2012, at 7:06 PM, Ethan Rosenberg, PhD wrote: >> >>> Dear list - >>> >>> Here is my code: >>> >>> $sql3 = "select max(Indx) from Visit3"; >>> $result7 = mysqli_query($cxn, $sql3); >>> $row7 = mysqli_fetch_array($result7, MYSQLI_BOTH); >>> >>> $Indx = $row7[0]; >>> $sql2 = "INSERT INTO Visit3(Indx, Site, MedRec, Notes, >>> Weight, BMI, Date) VALUES(?, ?, ?, ?, ?, ?, ? )"; >>> >>> mysqli_stmt_prepare( $stmt, $sql2 ); >>> >>> $_POST['Indx'] = $Indx; >>> >>> $_POST['Date'] = $Date; >>> >>> mysqli_stmt_bind_param($stmt, 'isisiis', $_POST['Indx'], >>> $_POST['Site'], $_POST['MedRec'], >>> $_POST['Notes'], $_POST['Weight'], $_POST['BMI'], >>> $_POST['Date']); >>> mysqli_execute($stmt); >>> mysqli_stmt_bind_result($stmt, $_POST['Indx'], >>> $_POST['Site'], $_POST['MedRec'], $_POST['Notes'], >>> $_POST['Weight'], $_POST['BMI'], $_POST['Date']); >>> *//The error is in this statement* >>> mysqli_stmt_fetch($stmt); >>> mysqli_stmt_close($stmt); >>> >>> *Warning: mysqli_stmt_bind_result(): Number of bind variables doesn't >>> match number of fields in prepared statement* >>> >>> * >>> * >>> Help and advice, please. >>> >>> Ethan Rosenberg >>> >>> -- >>> PHP Database Mailing List (http://www.php.net/) >>> To unsubscribe, visit: http://www.php.net/unsub.php >>> >> >> >> Maybe right here there needs to be something? >> >> mysqli_stmt_bind_result($stmt, ?????, $_POST['Indx'], ... >> >> in the statement above you have. >> >> mysqli_stmt_bind_param($stmt, 'isisiis', $_POST['Indx'], ... >> >> what ever 'isisiis' is, you need to put somehting in your >> ...bind_result() I think. >> maybe.. >> >> mysqli_stmt_bind_result($stmt, '', $_POST['Indx'], >> >> or >> >> mysqli_stmt_bind_result($stmt, 'isisiis', $_POST['Indx'], >> >> sorry for not a more concrete answer. I am guessing a little. :) >> HTH, >> >> Karl DeSaulniers >> Design Drumm >> http://designdrumm.com >> >> > If I had read further I would not have made my post a moment ago. Give Matt here the credit for seeing the forest thru the trees. :) -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php