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
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php