php insert into database values become 0
I just started writing PHP for a school project and I've stumbled upon a problem. I have an API which I post some data to. The data is the name, ID and class of a sensor. When I try to insert this into my mySQL database it doesn't input the correct data. Instead of inputting the actual data, it inputs 0 into every column except for building. Even the status column, which is a hard coded string.
I've tried pretty much everything (that I know of with my limited PHP knowledge) and I am stumped.
require_once "../meta.php";
$tmpdevice = clean($_POST['label']);
$device = str_replace('¥', ':', $tmpdevice);
$tmpgenericClass = clean($_POST['zwave_class_generic']);
$genericClass = str_replace('¥', ':', $tmpgenericClass);
$tmpuniqueID = clean($_POST['thingUID']);
$uniqueID = str_replace('¥', ':', $tmpuniqueID);
$status = 'Not Accepted';
$building = 303;
if ($uniqueID == "") {
echo '{"status":"error"}';
exit;
}
if ($device == "") {
echo '{"status":"error"}';
exit;
}
if ($genericClass == "") {
echo '{"status":"error"}';
exit;
}
$servername = DB_HOST;
$username = DB_USER;
$password = DB_PASSWORD;
$databasename = DB_NAME;
$conn = new mysqli($servername, $username, $password, $databasename);
if ($conn->connect_error) {
die("Connection error: " . $conn->connect_error);
exit;
}
$stmt = $conn->prepare("INSERT IGNORE INTO Actuator (UniqueID, Device, GenericClass, Status, Building) values (?,?,?,?,?)");
$stmt->bind_param("idddd", $uniqueID, $device, $genericClass, $status, $building);
if ($stmt->execute()) {
echo '{"status":"ok"}';
} else {
echo '{"status":"error"}';
}
$conn->close();
?>
php mysql mysqli
add a comment |
I just started writing PHP for a school project and I've stumbled upon a problem. I have an API which I post some data to. The data is the name, ID and class of a sensor. When I try to insert this into my mySQL database it doesn't input the correct data. Instead of inputting the actual data, it inputs 0 into every column except for building. Even the status column, which is a hard coded string.
I've tried pretty much everything (that I know of with my limited PHP knowledge) and I am stumped.
require_once "../meta.php";
$tmpdevice = clean($_POST['label']);
$device = str_replace('¥', ':', $tmpdevice);
$tmpgenericClass = clean($_POST['zwave_class_generic']);
$genericClass = str_replace('¥', ':', $tmpgenericClass);
$tmpuniqueID = clean($_POST['thingUID']);
$uniqueID = str_replace('¥', ':', $tmpuniqueID);
$status = 'Not Accepted';
$building = 303;
if ($uniqueID == "") {
echo '{"status":"error"}';
exit;
}
if ($device == "") {
echo '{"status":"error"}';
exit;
}
if ($genericClass == "") {
echo '{"status":"error"}';
exit;
}
$servername = DB_HOST;
$username = DB_USER;
$password = DB_PASSWORD;
$databasename = DB_NAME;
$conn = new mysqli($servername, $username, $password, $databasename);
if ($conn->connect_error) {
die("Connection error: " . $conn->connect_error);
exit;
}
$stmt = $conn->prepare("INSERT IGNORE INTO Actuator (UniqueID, Device, GenericClass, Status, Building) values (?,?,?,?,?)");
$stmt->bind_param("idddd", $uniqueID, $device, $genericClass, $status, $building);
if ($stmt->execute()) {
echo '{"status":"ok"}';
} else {
echo '{"status":"error"}';
}
$conn->close();
?>
php mysql mysqli
add a comment |
I just started writing PHP for a school project and I've stumbled upon a problem. I have an API which I post some data to. The data is the name, ID and class of a sensor. When I try to insert this into my mySQL database it doesn't input the correct data. Instead of inputting the actual data, it inputs 0 into every column except for building. Even the status column, which is a hard coded string.
I've tried pretty much everything (that I know of with my limited PHP knowledge) and I am stumped.
require_once "../meta.php";
$tmpdevice = clean($_POST['label']);
$device = str_replace('¥', ':', $tmpdevice);
$tmpgenericClass = clean($_POST['zwave_class_generic']);
$genericClass = str_replace('¥', ':', $tmpgenericClass);
$tmpuniqueID = clean($_POST['thingUID']);
$uniqueID = str_replace('¥', ':', $tmpuniqueID);
$status = 'Not Accepted';
$building = 303;
if ($uniqueID == "") {
echo '{"status":"error"}';
exit;
}
if ($device == "") {
echo '{"status":"error"}';
exit;
}
if ($genericClass == "") {
echo '{"status":"error"}';
exit;
}
$servername = DB_HOST;
$username = DB_USER;
$password = DB_PASSWORD;
$databasename = DB_NAME;
$conn = new mysqli($servername, $username, $password, $databasename);
if ($conn->connect_error) {
die("Connection error: " . $conn->connect_error);
exit;
}
$stmt = $conn->prepare("INSERT IGNORE INTO Actuator (UniqueID, Device, GenericClass, Status, Building) values (?,?,?,?,?)");
$stmt->bind_param("idddd", $uniqueID, $device, $genericClass, $status, $building);
if ($stmt->execute()) {
echo '{"status":"ok"}';
} else {
echo '{"status":"error"}';
}
$conn->close();
?>
php mysql mysqli
I just started writing PHP for a school project and I've stumbled upon a problem. I have an API which I post some data to. The data is the name, ID and class of a sensor. When I try to insert this into my mySQL database it doesn't input the correct data. Instead of inputting the actual data, it inputs 0 into every column except for building. Even the status column, which is a hard coded string.
I've tried pretty much everything (that I know of with my limited PHP knowledge) and I am stumped.
require_once "../meta.php";
$tmpdevice = clean($_POST['label']);
$device = str_replace('¥', ':', $tmpdevice);
$tmpgenericClass = clean($_POST['zwave_class_generic']);
$genericClass = str_replace('¥', ':', $tmpgenericClass);
$tmpuniqueID = clean($_POST['thingUID']);
$uniqueID = str_replace('¥', ':', $tmpuniqueID);
$status = 'Not Accepted';
$building = 303;
if ($uniqueID == "") {
echo '{"status":"error"}';
exit;
}
if ($device == "") {
echo '{"status":"error"}';
exit;
}
if ($genericClass == "") {
echo '{"status":"error"}';
exit;
}
$servername = DB_HOST;
$username = DB_USER;
$password = DB_PASSWORD;
$databasename = DB_NAME;
$conn = new mysqli($servername, $username, $password, $databasename);
if ($conn->connect_error) {
die("Connection error: " . $conn->connect_error);
exit;
}
$stmt = $conn->prepare("INSERT IGNORE INTO Actuator (UniqueID, Device, GenericClass, Status, Building) values (?,?,?,?,?)");
$stmt->bind_param("idddd", $uniqueID, $device, $genericClass, $status, $building);
if ($stmt->execute()) {
echo '{"status":"ok"}';
} else {
echo '{"status":"error"}';
}
$conn->close();
?>
php mysql mysqli
php mysql mysqli
edited Nov 24 '18 at 15:04
Shadow
25.7k92844
25.7k92844
asked Nov 24 '18 at 14:25
SuicidalllamaSuicidalllama
227
227
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The problem is that most of the fields are strings (varchar), but when you bind the parameters, you bind them as numbers (i
- integer, d
- double).
Use the proper data types for binding (s
- string):
$stmt->bind_param("ssssi", $uniqueID, $device, $genericClass, $status, $building);
Christ. Thank you so much! Copy pasted the method from another stackoverflow post and didnt think much more of it. Thank you!
– Suicidalllama
Nov 24 '18 at 15:19
add a comment |
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%2f53459138%2fphp-insert-into-database-values-become-0%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The problem is that most of the fields are strings (varchar), but when you bind the parameters, you bind them as numbers (i
- integer, d
- double).
Use the proper data types for binding (s
- string):
$stmt->bind_param("ssssi", $uniqueID, $device, $genericClass, $status, $building);
Christ. Thank you so much! Copy pasted the method from another stackoverflow post and didnt think much more of it. Thank you!
– Suicidalllama
Nov 24 '18 at 15:19
add a comment |
The problem is that most of the fields are strings (varchar), but when you bind the parameters, you bind them as numbers (i
- integer, d
- double).
Use the proper data types for binding (s
- string):
$stmt->bind_param("ssssi", $uniqueID, $device, $genericClass, $status, $building);
Christ. Thank you so much! Copy pasted the method from another stackoverflow post and didnt think much more of it. Thank you!
– Suicidalllama
Nov 24 '18 at 15:19
add a comment |
The problem is that most of the fields are strings (varchar), but when you bind the parameters, you bind them as numbers (i
- integer, d
- double).
Use the proper data types for binding (s
- string):
$stmt->bind_param("ssssi", $uniqueID, $device, $genericClass, $status, $building);
The problem is that most of the fields are strings (varchar), but when you bind the parameters, you bind them as numbers (i
- integer, d
- double).
Use the proper data types for binding (s
- string):
$stmt->bind_param("ssssi", $uniqueID, $device, $genericClass, $status, $building);
answered Nov 24 '18 at 15:10
ShadowShadow
25.7k92844
25.7k92844
Christ. Thank you so much! Copy pasted the method from another stackoverflow post and didnt think much more of it. Thank you!
– Suicidalllama
Nov 24 '18 at 15:19
add a comment |
Christ. Thank you so much! Copy pasted the method from another stackoverflow post and didnt think much more of it. Thank you!
– Suicidalllama
Nov 24 '18 at 15:19
Christ. Thank you so much! Copy pasted the method from another stackoverflow post and didnt think much more of it. Thank you!
– Suicidalllama
Nov 24 '18 at 15:19
Christ. Thank you so much! Copy pasted the method from another stackoverflow post and didnt think much more of it. Thank you!
– Suicidalllama
Nov 24 '18 at 15:19
add a comment |
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%2f53459138%2fphp-insert-into-database-values-become-0%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