Meowsalot: AND an Funktion übergeben

Beitrag lesen

Hallo dedlfix,

Ok, ich dachte so komme ich weiter


$values = array('2b442c0dc74c1dff7fdaab8a364361d2',
                '151237075579946c033aadc899804380', 
                '0b5247f8493271ec41297c4385386837', 
                '57f300b4fa8518ab557acf154af5e621');

$s      = substr( str_repeat( ' , ?' , count( $values ) ) , 2 );

$stmt = $mysqli->prepare($select . " 

	WHERE status NOT IN ('d9788f30bcf311ed98ef6bd5113784b2', 
                       '302fa36fca330e8faf9a5fe9f6ca5637') 
  
  AND vertraulich = '0' AND bereichEmpfaenger IN (" . $s . ")
                                                 
    UNION SELECT id, code, kurzbeschreibung, art, erstellungsdatum, job, 
                 bereichSender, apSender, bereichEmpfaenger, apEmpfaenger, prio, 
                 status, fertigstellung_sender, fertigstellung_uhrzeit_sender, 
                 fertigstellung_empfaenger, fertigstellung_uhrzeit_empfaenger, 
                 beschreibung, vertraulich, ta_titel, tp_titel, tp_farbe, ts_id, 
                 ts_titel, s.tb_titelkurz as Sender, e.tb_titelkurz as Empfaenger
                                                 
            FROM todo_grunddaten g                                 
                                                 
            LEFT JOIN todo_art ON todo_art.ta_code = g.art
            LEFT JOIN todo_prio ON todo_prio.tp_code = g.prio
            LEFT JOIN todo_status ON todo_status.ts_code = g.status
            LEFT JOIN todo_bereich s ON g.bereichSender = s.tb_code
            LEFT JOIN todo_bereich e ON g.bereichEmpfaenger = e.tb_code 

            WHERE status NOT IN ('d9788f30bcf311ed98ef6bd5113784b2',
                                 '302fa36fca330e8faf9a5fe9f6ca5637')  
            AND vertraulich = '1' AND (apSender =? OR apEmpfaenger =?)  
            AND bereichEmpfaenger IN (" . $s . ")

            ORDER by erstellungsdatum DESC" );
       
       	$typeDefinitions = str_repeat( 's' , count( $values ) );
        $params = array( $typeDefinitions );

        foreach ( $values as $k => $v ) {
            ${ 'varvar' . $k } = $v;
        	    $params[] = &${ 'varvar' . $k };# provide references
            }
            call_user_func_array( array( $stmt , 'bind_param' ) , $params );
            $stmt->bind_param("ss", $von, $an);
        }

        {
        $stmt->execute();

Jetzt bekomme ich zwei Warnungen

Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in
Warning: Invalid argument supplied for foreach()^

Ich denke es liegt an diesen Zeilen?

call_user_func_array( array( $stmt , 'bind_param' ) , $params );
$stmt->bind_param("ss", $von, $an);

Diese beiden müssten irgendwie verknüft werden? Denn ich kann ja bind_param nicht zweimal aufrufen?

Bis bald,
Meowsalot (Bernd)