Govanni: Mysqli update | Uncaught Error: Call to a member function bind_param() on boolean (PHP)

Hallo,

ich habe Probleme mit dem MYSQLI Update, es gibt immer die Fehlermeldung:

Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in

Der Code ist überschaubar

//Updaten wir den Spaß
	$sql = "UPDATE wp_posts_5 SET 
		status = '1',
		post_title = ?,
		post_url = ?, 
		suche = ?,
		link1 = ?,
		link2 = ?,
		link3 = ?,
		link4 = ?,
		link5 = ?,
		link6 = ?,
		link7 = ?,
		link8 = ?,
		link9 = ?,
		link10 = ?,
		WHERE id = ?";
	$statement = $mysqli->prepare($sql);
	$statement->bind_param(
		'ssissssssssssi', 
		$title,
		$url_new, 
		$daten_link_count,
		$daten_url_1,
		$daten_url_2,
		$daten_url_3,
		$daten_url_4,
		$daten_url_5,
		$daten_url_6,
		$daten_url_7,
		$daten_url_8,
		$daten_url_9,
		$daten_url_10,
		$id
		);

Daher habe ich "jede" Variable mit

	if (is_bool($daten_url_10) === true) {
		echo "Ja, das ist ein Boolean";
	}

einzeln jeden String geprüft. Keiner hat einen boolean Wert. Und jetzt?

Danke Govanni

  1. Hallo Govanni,

    Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in […] Daher habe ich "jede" Variable mit […] einzeln jeden String geprüft. Keiner hat einen boolean Wert. Und jetzt?

    Mit den Werten die du an bind_param() übergibst hat das nichts zu tun, das Problem ist $statement - das ist vmtl. false da prepare() fehl schlägt (warum das so ist musst du mysqli fragen.

    Gruß,
    Tobias

    1. Hallo Tobias,

      ich dachte mit

      	if(!$statement->execute()) {
      		echo "Query fehlgeschlagen: ".$statement->error;
      	}
      

      könnte ich schon alles an Fehlern abfangen. Natürlich hast du Recht der Fehler passiert schon vorher.

      Der Code von der PHP Seite

      	if (!$mysqli->error) {
      		printf("Errormessage: %s\n", $mysqli->error);
      	}
      

      gibt leider keinen Fehler aus. Auch

      	if (!$statement->bind_param(
      		'ssissssssssssi', 
      		$title,
      		$url_new, 
      		$daten_link_count,
      		$daten_url_1,
      		$daten_url_2,
      		$daten_url_3,
      		$daten_url_4,
      		$daten_url_5,
      		$daten_url_6,
      		$daten_url_7,
      		$daten_url_8,
      		$daten_url_9,
      		$daten_url_10,
      		$id
      		)){
      	 echo "Binding parameters failed: (" . $mysqli->errno . ") " . $mysqli->error;
      	}
      

      gibt keinen Fehler aus.

      1. Hallo Govanni,

        Der Code von der PHP Seite

        	if (!$mysqli->error) {
        		printf("Errormessage: %s\n", $mysqli->error);
        	}
        

        gibt leider keinen Fehler aus.

        Du lässt ja auch nur eine Fehlermeldung ausgeben wenn kein Fehler aufgetreten ist …

        Gruß,
        Tobias

  2. Hallo Govanni,

    link10 = ?,
    		WHERE id = ?";
    

    Ich hypothetisiere: da ist ein Komma zu viel und das gibt einen SQL Error.

    Rolf

    --
    sumpsi - posui - clusi
    1. Oh verdammt, du hast recht. Vollkommen richtig, mein Fehler