Re: Re: Problems w/ insert

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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:


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_stmt_bind_result($stmt, $_POST['Indx'], $_POST['Site'], $_POST['MedRec'], $_POST['Notes'], $_POST['Weight'], $_POST['BMI'], $_POST['Date']); *//The error is in this statement*

*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 (
To unsubscribe, visit:

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.

mysqli_stmt_bind_result($stmt, '', $_POST['Indx'],


mysqli_stmt_bind_result($stmt, 'isisiis', $_POST['Indx'],

sorry for not a more concrete answer. I am guessing a little. :)

Karl DeSaulniers
Design Drumm

PHP Database Mailing List (
To unsubscribe, visit:

[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux