Jump to content
  • 0

Funkcia getfromDB


Ninjonik

Dotaz

Ahoj,
chcel som si zjednodušiť vyberanie dát z databáze, tak som si na to vytvoril funkciu.
Lenže tá funkcia mi nejak nefunguje, a neviem prísť na to prečo, tak to skúsim tu.
Funkcia:
 

function getfromDB($data, $db){

	$db = new PDO("mysql:host=".DBHOST.";charset=utf8mb4;dbname=".DBNAME, DBUSER, DBPASS);
	$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

	$stmt = $db->prepare("SELECT ".$data." FROM ".$db.""); // Line 97
	$stmt->execute(array());
	$row = $stmt->fetch(PDO::FETCH_ASSOC);

	if (!$stmt->execute()) {
		print_r($stmt->errorInfo());
	}
}

A callujem ju napr. takto: 

getfromDB("pageTitle, pageID", "pages");

Chybová hláška: Catchable fatal error: Object of class PDO could not be converted to string in - on line 97
Predom ďakujem za pomoc.

Edited by Ninjonik
Link to comment
Share on other sites

5 odpovědí na tuto otázku

Recommended Posts

  • 0
před 20 minutami, XpresS said:

Noo v metóde používaš variable ako string a neskôr to db dávaš ako objekt databáze 

Čo tak to premeniť na $table? 

Díky za pomoc, $db som mal už definované no 😄

Edited by Ninjonik
Link to comment
Share on other sites

  • 0

A ešte jedna vec, nechcel som kvôli tomu zakladať nový topic, tak to napíšem tu.

Vytvoril som si novú funkciu insertDB, ktorá slúži na vkladanie dát to tabuľky.
 

function insertDB($table, $data, $values, $values2) {
	global $db;
	
	$stmt = $db->prepare('INSERT INTO '.$table.' ('.$data.') VALUES ('.$values.')');
	$stmt->execute(array($values2)); // riadok 135
	
	if (!$stmt->execute()) {
		print_r($stmt->errorInfo());
	}

}

insertDB('groups', 'title,color', ':title, :color', '":title" => '.$name.', ":color" => '.$color.''); // Využitie funkcie - riadok 69

Ale nejak mi to nefunguje, a ani za nič neviem prísť prečo, chybová hláška mi len pomohla zistiť, že kde je chyba, ale čo tú chybu spôsobuje vyčítať fakt neviem.

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number' in config.php:135 
Stack trace: 
#0 config.php(135): PDOStatement->execute(Array) #1 creategroup.php(69): insertDB('groups', 'title,color', ':title, :color', '":title" => asd...') #2 {main} thrown in /home/users/megaparba9ecz/igportals.eu/web/content/config/config.php on line 135

 

Link to comment
Share on other sites

  • 0
  • Administrátor
$stmt = $db->prepare('INSERT INTO '.$table.' ('.$data.') VALUES ('.$values.')');

tímhle si mimo jiné koleduješ o průser. Když už jsi osvícen a používáš PDO tak ho používej tak aby jsi ho ošetřil před injekty

 

každopádně jeslti vidím správně tak do 4 argumentů cpeš 5 argumentů

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0
  • Globální moderátor

Asi hloupost ale já vždy používám bind_result, třeba pomůže. Každopádně 5 param. do 4 param. bude taky chyba

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...