webForumDet fria alternativet

INSERT med pdo ger inget resultat.

2 svar · 458 visningar · startad av colione

colioneMedlem sedan juni 20014 421 inlägg
#1

Jag kör följande kodsnutt för att kasta in en produkt i databasen, dock så läggs inget in när den körs. $this->db innehåller ett PDO-anslutning skapat från en klass jag har använt förut och det har funkat utan problem. $this->db->prod innehåller strängen products.
Jag har även provat att kasta in kolon innan namnen i arrayen. Har även provat bindParam. Men inget sätts in. Vad är det jag missat?
Jag har satt felen till exceptions samt provat att innesluta allt i try/catch utan att fånga något.
DBMS är mysql

	public function createProduct(Product $product) {
		$stmt = $this->db->prepare("INSERT INTO $this->db->prod(`artNr`,`show_in_catalog`,`published`) VALUES(:art,:show,:pub)");
		$bindArr = array("art"=>$product->art,"show"=>$product->show,"pub"=>$product->pub);
		$stmt->execute($bindArr);
	}
SPiNMedlem sedan mars 20007 896 inlägg
#2

Försök med:

$stmt = $this->db->prepare("INSERT INTO " . $this->db->prod('artNr','show_in_catalog','published') . " VALUES(?,?,?)");
...

Och din prod-metod i db returnerar väl ett tabellnamn också, och inte bara fältnamnen?

colioneMedlem sedan juni 20014 421 inlägg
#3

Det hela visade sig vara en bugg i pdo, vilket ledde till att prepare helt enkelt gjorde att php slutade exekvera utan några som helst varningar elle liknande.

128 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)