class en function mysqli connect
ik ben net bezig met een nieuwe website html een deel
af dus nu wil een goed php connect op zetten zodat het echt werk kan begingen
maar dit wil een goed aanpakken met classen enzo maar ik kom niet uit ver uit de tutorials van google dus,
ben ik zelf bezig geweest
en heb dit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
maar wat moet er nog bij tot een goeie connect
of anders
MVG kenny
Wat dingen wat mij opvalt:
- De connectie kan prima in je constructor, met de mogelijkheid om de logingegevens aan te passen via de instance: $db = new mysqlidata("localhost","jantje","H4X0R","mijn_website")
- geen output in je class, en al helemaal geen die(). Gebruik dan liever exceptions.
- Aar - op 22/10/2014 19:21:50:
Waarom aan class bouwen voor MySQLi als deze al een eigen class heeft?
Wat dingen wat mij opvalt:
- De connectie kan prima in je constructor, met de mogelijkheid om de logingegevens aan te passen via de instance: $db = new mysqlidata("localhost","jantje","H4X0R","mijn_website")
- geen output in je class, en al helemaal geen die(). Gebruik dan liever exceptions.
Wat dingen wat mij opvalt:
- De connectie kan prima in je constructor, met de mogelijkheid om de logingegevens aan te passen via de instance: $db = new mysqlidata("localhost","jantje","H4X0R","mijn_website")
- geen output in je class, en al helemaal geen die(). Gebruik dan liever exceptions.
omdat ik deze class ook gebruik om uit db tehalen
ik ben een noob omdit het heb die zelf gebouwt zonder dat ik weet hoe ik een mysqli connect maak met class en function
Leuk om mee te experimenteren, maar in feite ben je het wiel nu opnieuw aan het uitvinden.
Toevoeging op 22/10/2014 19:43:31:
maar wat moet er eigenlijk nog bij
zodat die echt werkt?
Kenny iets op 22/10/2014 19:30:49:
maar wat moet er eigenlijk nog bij
zodat die echt werkt?
zodat die echt werkt?
Je zult een instantie van de class moeten maken. Nu heb je hem alleen gedeclareerd.
en nu kun je deze instantie gaan gebruiken.
Toevoeging op 23/10/2014 02:47:50:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
// config.php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','');
define('DB_DBASE','phptest');
// database.class.php
class mysqlidata
{
private $link;
private $result;
function __construct($host = DB_HOST, $user = DB_USER, $pass = DB_PASS, $dbase = DB_DBASE)
{
$this->result = false;
$this->link = new mysqli($host, $username, $password, $password)
or die ("can not connect to mysqli server");
}
public function getAll($tablename)
{
$array = array();
//als er nog een oude resultset in het geheugen is dan ruimen we die netjes op
if($this->result)
$this->result->close();
$this->result = $this->link->query('SELECT * FROM '.$tablename);
//indien de query niet gelukt is geven we een foutmelding
if(!$this->result)
{
echo $this->link->error;
return $array;
}
//prop alle rijen in een array
while($row = $this->result->fetch_assoc())
$array[] = $row;
return $array;
}
public function numRows()
{
// even checken of we wel een resultset hebben
if(!$this->result)
return false;
return $this->result->num_rows;
}
}
// index.php
// eerste instantie van de class maakt verbinding met de default database
$db = new mysqlidata();
print_r($db->getAll('my_table'));
printf("Select returned %d rows.\n", $db->numRows());
// tweede instantie van de class die verbinding maakt met een andere database server
$db2 = new mysqlidata('mysql.server.com', 'superuser', 'mypassword', 'test');
print_r($db2->getAll('my_table'));
printf("Select returned %d rows.\n", $db2->numRows());
?>
// config.php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','');
define('DB_DBASE','phptest');
// database.class.php
class mysqlidata
{
private $link;
private $result;
function __construct($host = DB_HOST, $user = DB_USER, $pass = DB_PASS, $dbase = DB_DBASE)
{
$this->result = false;
$this->link = new mysqli($host, $username, $password, $password)
or die ("can not connect to mysqli server");
}
public function getAll($tablename)
{
$array = array();
//als er nog een oude resultset in het geheugen is dan ruimen we die netjes op
if($this->result)
$this->result->close();
$this->result = $this->link->query('SELECT * FROM '.$tablename);
//indien de query niet gelukt is geven we een foutmelding
if(!$this->result)
{
echo $this->link->error;
return $array;
}
//prop alle rijen in een array
while($row = $this->result->fetch_assoc())
$array[] = $row;
return $array;
}
public function numRows()
{
// even checken of we wel een resultset hebben
if(!$this->result)
return false;
return $this->result->num_rows;
}
}
// index.php
// eerste instantie van de class maakt verbinding met de default database
$db = new mysqlidata();
print_r($db->getAll('my_table'));
printf("Select returned %d rows.\n", $db->numRows());
// tweede instantie van de class die verbinding maakt met een andere database server
$db2 = new mysqlidata('mysql.server.com', 'superuser', 'mypassword', 'test');
print_r($db2->getAll('my_table'));
printf("Select returned %d rows.\n", $db2->numRows());
?>
Gewijzigd op 23/10/2014 02:50:03 door Frank Nietbelangrijk
waar komt die Tablenaam vandaan?
Waar het meer om gaat:
Zie je de voordelen in mijn stukje code? Bijvoorbeeld dat je gewoon meerdere databases of servers kunt connecten?
Dat je heel eenvoudig nog even het aantal rijen kunt opvragen na een select query?
Toevoeging op 26/10/2014 15:51:46:
lol dit krijg ik op me iis
Fatal error: Class 'mysqli' not found in C:\Users\Kenny\Desktop\website\website\globaal.php on line 20