Suggereert deze var_dump van een database connectie een succesvolle verbinding?
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
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
<?php
object(CMySQL)#2 (5) {
["connection"]=> object(mysqli)#3 (19) {
["affected_rows"]=> int(0)
["client_info"]=> string(79) "mysqlnd 5.0.12-dev - 20150407 - $Id: 7e72f9690b1498a1bead7a637c33a831c0d2f655 $"
["client_version"]=> int(50012)
["connect_errno"]=> int(0)
["connect_error"]=> NULL
["errno"]=> int(0)
["error"]=> string(0) ""
["error_list"]=> array(0) { }
["field_count"]=> int(0)
["host_info"]=> string(20) "localhost via TCP/IP"
["info"]=> NULL
["insert_id"]=> int(0)
["server_info"]=> string(16) "5.1.73-community"
["server_version"]=> int(50173)
["stat"]=> string(135) "Uptime: 898055 Threads: 1 Questions: 3549 Slow queries: 0 Opens: 645 Flush tables: 1 Open tables: 19 Queries per second avg: 0.3"
["sqlstate"]=> string(5) "00000"
["protocol_version"]=> int(10)
["thread_id"]=> int(608)
["warning_count"]=> int(0) }
["str_db_name"]=> string(0) ""
["_Error"]=> NULL
["_ErrorLevel"]=> int(256)
["QueryLog"]=> NULL }
?>
object(CMySQL)#2 (5) {
["connection"]=> object(mysqli)#3 (19) {
["affected_rows"]=> int(0)
["client_info"]=> string(79) "mysqlnd 5.0.12-dev - 20150407 - $Id: 7e72f9690b1498a1bead7a637c33a831c0d2f655 $"
["client_version"]=> int(50012)
["connect_errno"]=> int(0)
["connect_error"]=> NULL
["errno"]=> int(0)
["error"]=> string(0) ""
["error_list"]=> array(0) { }
["field_count"]=> int(0)
["host_info"]=> string(20) "localhost via TCP/IP"
["info"]=> NULL
["insert_id"]=> int(0)
["server_info"]=> string(16) "5.1.73-community"
["server_version"]=> int(50173)
["stat"]=> string(135) "Uptime: 898055 Threads: 1 Questions: 3549 Slow queries: 0 Opens: 645 Flush tables: 1 Open tables: 19 Queries per second avg: 0.3"
["sqlstate"]=> string(5) "00000"
["protocol_version"]=> int(10)
["thread_id"]=> int(608)
["warning_count"]=> int(0) }
["str_db_name"]=> string(0) ""
["_Error"]=> NULL
["_ErrorLevel"]=> int(256)
["QueryLog"]=> NULL }
?>
Gezien het feit dat een mislukte verbinding geen geldig object oplevert, ja je bent verbonden. Kijk voor de grap eens naar de inhoud van het object. Waarom zou je vermoeden dat het geen succesvolle verbinding zou zijn?
Gewijzigd op 29/01/2016 14:32:59 door Salvatore Luciano
connect_error() voor. Retourneert deze een waarde verschillend van NULL is er iets mis.
Ook zie ik niet helemaal hoe de database-naam relevant is, tenzij je ergens aan het inbreken bent?
1 minuut googlen had je het antwoord gegeven, je kunt dit (o.a.) bepalen door het uitvoeren van een query:
EDIT: voor de beeldvorming: dit object representeert enkel de verbinding tussen PHP en een MySQL-database. Indien je vragen wilt stellen aan de database dien je queries uit te voeren om deze informatie te verkrijgen. Ik zie zo gauw geen property of methode die je deze informatie rechtstreeks geeft. Sterker nog, normaal is het (bij MySQLi) zo dat je de database-naam meteen opgeeft bij het maken van een verbinding.
Hier is de functie / methode Ook zie ik niet helemaal hoe de database-naam relevant is, tenzij je ergens aan het inbreken bent?
1 minuut googlen had je het antwoord gegeven, je kunt dit (o.a.) bepalen door het uitvoeren van een query:
EDIT: voor de beeldvorming: dit object representeert enkel de verbinding tussen PHP en een MySQL-database. Indien je vragen wilt stellen aan de database dien je queries uit te voeren om deze informatie te verkrijgen. Ik zie zo gauw geen property of methode die je deze informatie rechtstreeks geeft. Sterker nog, normaal is het (bij MySQLi) zo dat je de database-naam meteen opgeeft bij het maken van een verbinding.
Gewijzigd op 29/01/2016 15:08:57 door Thomas van den Heuvel
Code (php)
Vervolgens wordt de $oConnection in een global variabele opgeslagen genaamd $db_cas. Daarna komt hij deze functie in.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
function checkBlocked($mannr)
{
global $db_cas;
//Ik weet 100% zeker dat deze query een resultaat moet opleveren
$sql = "SELECT * FROM user_blocked WHERE pers_persnr = '10377'";
//Geeft een object terug, onderin de var_dump van dit object
$res = $db_cas->Query($sql);
//Hier gaat hij in de functie CountResult die zie je in het PHP stuk hieronder
if($db_cas->CountResult($res) == 0)
{
return true;
} else {
return false;
}
}
?>
function checkBlocked($mannr)
{
global $db_cas;
//Ik weet 100% zeker dat deze query een resultaat moet opleveren
$sql = "SELECT * FROM user_blocked WHERE pers_persnr = '10377'";
//Geeft een object terug, onderin de var_dump van dit object
$res = $db_cas->Query($sql);
//Hier gaat hij in de functie CountResult die zie je in het PHP stuk hieronder
if($db_cas->CountResult($res) == 0)
{
return true;
} else {
return false;
}
}
?>
CountResult functie:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
public function CountResult($resource = null) {
//Hier gaat hij niet in
if (is_null($resource)) {
$this->SetError('Resource is a null object');
return false;
}
//!!Hier gaat hij in dus hij zegt dat het niet echt een resource is??
if (!is_resource($resource)) {
$this->SetError('Resource ' . $resource->current_field . ' is not really a resource');
return false;
}
$count = mysqli_num_rows($resource);
return $count;
}
?>
public function CountResult($resource = null) {
//Hier gaat hij niet in
if (is_null($resource)) {
$this->SetError('Resource is a null object');
return false;
}
//!!Hier gaat hij in dus hij zegt dat het niet echt een resource is??
if (!is_resource($resource)) {
$this->SetError('Resource ' . $resource->current_field . ' is not really a resource');
return false;
}
$count = mysqli_num_rows($resource);
return $count;
}
?>
Var_dump van Query Result
object(mysqli_result)#8 (5) {
["current_field"]=> int(0)
["field_count"]=> int(2)
["lengths"]=> NULL
["num_rows"]=> int(1)
["type"]=> int(0) }
Toevoeging op 29/01/2016 15:41:17:
Welp... http://stackoverflow.com/questions/24296675/i-am-updating-code-mysql-to-mysqli-now-i-am-get-stuck-in-is-resource-method
Gewijzigd op 29/01/2016 15:29:42 door Salvatore Luciano
Het is ook geen resource, dus je hoeft daar ook niet op te controleren. De mysql functies werken intern heel anders dan mysqli functies.
Ja ik heb hem door. Ik heb in de Fetch en CountResult functie de is_resource weggehaald en het werkt perfect. Ik had de documentatie van PHP7 beter moeten lezen..
Als de query in de functie checkBlocked() geen resultaten oplevert dan retourneert deze functie true?
Wat?
Ik hoop dat alles goed gedocumenteerd is, maar als ik dit zo zie (global $db_cas? Tijd voor een database wrapper class?) wordt het (hoog) tijd voor het herschrijven van deze ... code.