Re: Re: Problems w/ insert

Matt Pelmear <[email protected]>
Newsgroups gmane.comp.php.database
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.