21. juni 2016 - 11:23Der er
28 kommentarer og 1 løsning
hvad har jeg gjort galt her
Hej eksperter
Jeg sidder for ved nu engang og leger med MySqli. Har ikke rigtig kunnet forene mig med det. Men nu prøver jeg igen og denne gang skal jeg lære det. Kan godt se alle fordelene ved det.
Nå men til mit spørgsmål. Jeg er ved at lave en simpel insert i min database tabel. men får denne fejl.
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp64\www\test\config\db.class.php on line 23
public function __construct() { $conn = mysqli_connect($this->db_host, $this->db_user, $this->db_pass, $this->db_name); if(mysqli_connect_errno()) { die('Connection Failed :' . mysqli_connect_error()); exit; } else { echo 'Connection made successfully...'; } return true; }
public function insert($key, $val) { $sql = "insert into people($key) VALUES($val)"; mysqli_query($sql); } }
hvad har jeg gjort forkert. og eventuelt lige vise mig det så jeg ved hvad det er og hvorfor. for som sagt denne gang skal mysqli altså ind på lystavlen.
Notice: Undefined property: DB::$conn in C:\wamp64\www\test\config\db.class.php on line 24 Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp64\www\test\config\db.class.php on line 24
#12: Ah, din rettelse var på forglemmelsen. Jeg troede du mente, han skulle forsøge at gøre det - altså benytte den statement - for at se fejlen. Beklager. Og godt set at han gjorde det samme igen.
Maya -> nu har jeg lavet det hele som det skal. og det virker som sådan sætter bare ikke noget ind. Får en fejl der skriver dette: Field 'birthday' doesn't have a default value. Hvad kan dette skyldes. har jeg aldrig oplevet før.
> or die(mysqli_error($this->conn)); skal vel se sådan ud or die(mysqli_error($conn)); nu når conn ligger i sammen functiuon jf #9
public function insert($key, $val) { $conn = $this->connect(); $sql = "insert into people(".$key.") VALUES('".$val."')"; mysqli_query($conn, $sql) or die(mysqli_error($conn)); }
@delphiuser har du tænkt over, hver collonne er i hver sin række, det er vist ikke det du vil !!!
lige nu ser din sql sådan ud: insert into people(name) VALUES('ronn') insert into people(birthday) VALUES('2016-12-31') insert into people(email) VALUES('rjo@test.dk')
så du skal lave din insert helt om !!
så $key bliver ligmed name,birthday,email og $val bliver ligmed 'lsjd', '2016-05-05', 'test@test.dk'
forbedrings forslag: du bør nok vende dig af med at bruge procedural style, og gå over til OOP style, da det er nutiden og fremtiden
kig på Prepare Statement som er noget af det nye der er kommet til i mysqli og forbedret i PDO
Der skal kun være en sql som skal køres og den skal være: insert into people(name,birthday,email) VALUES('{$_POST['name]}','{$_POST['birthday]}','{$_POST['email]}')
så det jeg kan gøre er at lave en sql streng efter min submit. også kalde min sql streng ind i min function? vil det være en mulighed eller bliver det noget rod?
Det er præcis det her du skal køre ved submit. Det bliver ikke objektorienteret, men det må du jo så forsøge at få det til, hvis du ikke blot er interesseret i at få det til at virke. Jeg tænker på at du i første omgang kunne fokusere på at få databasedelen til at virke. Derefter kan du så forsøge at overføre det til en klasse - i stedet for at det er proceduralt.
public function insert($sql) { mysqli_query($this->conn, $sql) or die(mysqli_error($this->conn)); //echo $sql; } } ved det ser lidt for simpelt ud. Men det er en start. så må jeg så se om jeg kan få det bygget ud stille og roligt så det kan blive mere oop med tiden når jeg kommer mere ind i det. nu skal jeg først lære alle grund principperne i mysqli. men jeg kommer helt sikkert med nogle flere spørgsmål inden længe.
ronols -> denne du lige har skrevet. den vil jeg vende tilbage til senere. men ser rigtig interessant ud. måske lidt mere kompliceret. Men klart jeg vil bruge alt hvad jeg får af gode eksempler på mine spørgsmål. Jeg er meget taknemmelig for hjælpen.
ronols -> på den måde der kan jeg så gå ind og og lave min tbl nedarvet til enhver tbl jeg har i min database og lave den følgende kode? så jeg kun har brug for en database fil hvor jeg bare laver nogle forskellige functioner med samme grund princip. Dette ville jo klart gå hen og blive meget nemmere hvis man bare kunne nøjes med at lave et kald på sin side med en navneliste feks.
så jeg eventuelt kunne nøjes med at lave en linie som denne...
men den kode ville nok kraeve en laengere forklaring.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.