Re: Re: Problems w/ insert

From: Date: Tue, 11 Sep 2012 04:24:39 +0000
Subject: Re: Re: Problems w/ insert
References: 1 2 3 4 5 6 7  Groups: php.db 
Request: Send a blank email to php-db+get-48491@lists.php.net to get a copy of this message
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. :)


« previous php.db (#48491) next »