PHP Object is destroyed
I am upgrading testlink
(1.9.4 to 1.9.17). The older version uses php5
and the latest one uses php7
.
My bellow code (putting partial lines) stopped working as the object is losing its value at fetchFirstRow
on line #5.
If I comment fetchFirstRow
then object $db
loses its value in readFromDB
on line #3.
Can someone help me in what is going wrong? The same thing works without any errors in the older version.
doDBConnect($db)
doDBConnect(&$db){
$db=new database(); //Create database class
}
myfunction(&$db){
$user->readFromDB($db);
}
readFromDB(&$db){
var_dump($db); //Shows DB object
$info = $db-> fetchFirstRow($sql);
var_dump($db); //Shows nothing (Object gets destroued and web page looks like 404 page).
}
function fetchFirstRow($sql){
$result = $this->exec_query($sql);
$row = null;
if ($result){
$row = $this->fetch_array($result);
}
unset($result);
//var_dump($this->db);die(); //If unset is not commentd then this
return $row;
}
php testlink
add a comment |
I am upgrading testlink
(1.9.4 to 1.9.17). The older version uses php5
and the latest one uses php7
.
My bellow code (putting partial lines) stopped working as the object is losing its value at fetchFirstRow
on line #5.
If I comment fetchFirstRow
then object $db
loses its value in readFromDB
on line #3.
Can someone help me in what is going wrong? The same thing works without any errors in the older version.
doDBConnect($db)
doDBConnect(&$db){
$db=new database(); //Create database class
}
myfunction(&$db){
$user->readFromDB($db);
}
readFromDB(&$db){
var_dump($db); //Shows DB object
$info = $db-> fetchFirstRow($sql);
var_dump($db); //Shows nothing (Object gets destroued and web page looks like 404 page).
}
function fetchFirstRow($sql){
$result = $this->exec_query($sql);
$row = null;
if ($result){
$row = $this->fetch_array($result);
}
unset($result);
//var_dump($this->db);die(); //If unset is not commentd then this
return $row;
}
php testlink
I had no idea functions can be defined / used how you are using them, are you sure that is valid?
– Script47
Nov 27 '18 at 10:07
@Script47 The functions are scattered across class. fetchFirstRow is part of database class whose object is getting created in line 4 of example.
– Vinaykumar Patel
Nov 27 '18 at 10:09
The only thing I can see in your code that could destroy a reference is unset(). Have you tried running exec_query and fetch_array outside fetchFirstRow()?
– Patrick
Nov 27 '18 at 10:29
@Patrick, I tried commenting unset (though it is destroying $result and not $this) but the values of $db is still gone after this function is over. I have mention that in my problem statement,
– Vinaykumar Patel
Nov 27 '18 at 12:23
add a comment |
I am upgrading testlink
(1.9.4 to 1.9.17). The older version uses php5
and the latest one uses php7
.
My bellow code (putting partial lines) stopped working as the object is losing its value at fetchFirstRow
on line #5.
If I comment fetchFirstRow
then object $db
loses its value in readFromDB
on line #3.
Can someone help me in what is going wrong? The same thing works without any errors in the older version.
doDBConnect($db)
doDBConnect(&$db){
$db=new database(); //Create database class
}
myfunction(&$db){
$user->readFromDB($db);
}
readFromDB(&$db){
var_dump($db); //Shows DB object
$info = $db-> fetchFirstRow($sql);
var_dump($db); //Shows nothing (Object gets destroued and web page looks like 404 page).
}
function fetchFirstRow($sql){
$result = $this->exec_query($sql);
$row = null;
if ($result){
$row = $this->fetch_array($result);
}
unset($result);
//var_dump($this->db);die(); //If unset is not commentd then this
return $row;
}
php testlink
I am upgrading testlink
(1.9.4 to 1.9.17). The older version uses php5
and the latest one uses php7
.
My bellow code (putting partial lines) stopped working as the object is losing its value at fetchFirstRow
on line #5.
If I comment fetchFirstRow
then object $db
loses its value in readFromDB
on line #3.
Can someone help me in what is going wrong? The same thing works without any errors in the older version.
doDBConnect($db)
doDBConnect(&$db){
$db=new database(); //Create database class
}
myfunction(&$db){
$user->readFromDB($db);
}
readFromDB(&$db){
var_dump($db); //Shows DB object
$info = $db-> fetchFirstRow($sql);
var_dump($db); //Shows nothing (Object gets destroued and web page looks like 404 page).
}
function fetchFirstRow($sql){
$result = $this->exec_query($sql);
$row = null;
if ($result){
$row = $this->fetch_array($result);
}
unset($result);
//var_dump($this->db);die(); //If unset is not commentd then this
return $row;
}
php testlink
php testlink
edited Nov 27 '18 at 10:08
treyBake
3,31031136
3,31031136
asked Nov 27 '18 at 10:05
Vinaykumar PatelVinaykumar Patel
389414
389414
I had no idea functions can be defined / used how you are using them, are you sure that is valid?
– Script47
Nov 27 '18 at 10:07
@Script47 The functions are scattered across class. fetchFirstRow is part of database class whose object is getting created in line 4 of example.
– Vinaykumar Patel
Nov 27 '18 at 10:09
The only thing I can see in your code that could destroy a reference is unset(). Have you tried running exec_query and fetch_array outside fetchFirstRow()?
– Patrick
Nov 27 '18 at 10:29
@Patrick, I tried commenting unset (though it is destroying $result and not $this) but the values of $db is still gone after this function is over. I have mention that in my problem statement,
– Vinaykumar Patel
Nov 27 '18 at 12:23
add a comment |
I had no idea functions can be defined / used how you are using them, are you sure that is valid?
– Script47
Nov 27 '18 at 10:07
@Script47 The functions are scattered across class. fetchFirstRow is part of database class whose object is getting created in line 4 of example.
– Vinaykumar Patel
Nov 27 '18 at 10:09
The only thing I can see in your code that could destroy a reference is unset(). Have you tried running exec_query and fetch_array outside fetchFirstRow()?
– Patrick
Nov 27 '18 at 10:29
@Patrick, I tried commenting unset (though it is destroying $result and not $this) but the values of $db is still gone after this function is over. I have mention that in my problem statement,
– Vinaykumar Patel
Nov 27 '18 at 12:23
I had no idea functions can be defined / used how you are using them, are you sure that is valid?
– Script47
Nov 27 '18 at 10:07
I had no idea functions can be defined / used how you are using them, are you sure that is valid?
– Script47
Nov 27 '18 at 10:07
@Script47 The functions are scattered across class. fetchFirstRow is part of database class whose object is getting created in line 4 of example.
– Vinaykumar Patel
Nov 27 '18 at 10:09
@Script47 The functions are scattered across class. fetchFirstRow is part of database class whose object is getting created in line 4 of example.
– Vinaykumar Patel
Nov 27 '18 at 10:09
The only thing I can see in your code that could destroy a reference is unset(). Have you tried running exec_query and fetch_array outside fetchFirstRow()?
– Patrick
Nov 27 '18 at 10:29
The only thing I can see in your code that could destroy a reference is unset(). Have you tried running exec_query and fetch_array outside fetchFirstRow()?
– Patrick
Nov 27 '18 at 10:29
@Patrick, I tried commenting unset (though it is destroying $result and not $this) but the values of $db is still gone after this function is over. I have mention that in my problem statement,
– Vinaykumar Patel
Nov 27 '18 at 12:23
@Patrick, I tried commenting unset (though it is destroying $result and not $this) but the values of $db is still gone after this function is over. I have mention that in my problem statement,
– Vinaykumar Patel
Nov 27 '18 at 12:23
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53497191%2fphp-object-is-destroyed%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53497191%2fphp-object-is-destroyed%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I had no idea functions can be defined / used how you are using them, are you sure that is valid?
– Script47
Nov 27 '18 at 10:07
@Script47 The functions are scattered across class. fetchFirstRow is part of database class whose object is getting created in line 4 of example.
– Vinaykumar Patel
Nov 27 '18 at 10:09
The only thing I can see in your code that could destroy a reference is unset(). Have you tried running exec_query and fetch_array outside fetchFirstRow()?
– Patrick
Nov 27 '18 at 10:29
@Patrick, I tried commenting unset (though it is destroying $result and not $this) but the values of $db is still gone after this function is over. I have mention that in my problem statement,
– Vinaykumar Patel
Nov 27 '18 at 12:23