I would take a look at this page. I think it has what you are looking for.
Sent from my iPhone On Jan 11, 2021, at 4:59 PM, Serge Fonville <serge.fonville@xxxxxxxxx> wrote:
When I try : $stmp->bind_param('$des', '$d1', '$a', '$m', '$t', '$s'); I get: Fatal error: Uncaught Error: mysqli_stmt::bind_param(): Argument #2 cannot be passed by reference
What does that mean?
You are converting all values to strings, the whole idea is to maintain the data type, so you should remove the quotes. On top of that, you are using single quotes, so the values are not expanded inside the string. When I try : $stmp->bind_param('$des', '$d1', '$a', '$m', '$t', '$s'); I get: Fatal error: Uncaught Error: mysqli_stmt::bind_param(): Argument #2 cannot be passed by reference
What does that mean?
What would I put where you have to tell what type of date(string, number?)
One of the benefits of prepared statements is that you do not need to convert or specify data types. Since the mysqli library handles that for you. It finds the datatype from the datatype of the variable and passes its value to the database service.
I can try this but if I use prepared statements, I have multiple fields to insert. What would I put where you have to tell what type of date(string, number?)
I tried and minimize your question to the following code: <?php
$date_from_sheet = "1/1/2021"; // As you know the format of the date, it is easier to convert based on that $timestamp = DateTime::createFromFormat('d./m/Y', $date_from_sheet);
// Instead of inserting the values inside the string, use bind variables instead. $query = "INSERT INTO some_table(date_field) values (?)"; // I'm assuming $mysqli is already instantiated elsewhere $stmt = $mysqli->prepare($query); // The only field in the query is the date field, // so it is clear that the only parameter is the corresponding value $stmt->bind_param($timestamp); // The only remaining thing to do is execute it. $stmt->execute(); ?>
Does this enable you to solve your issue?
I used the following sources: I have also tried: $d1 = date("Y-m-d H:i:s", strtotime($d)); But that returns random dates when I insert into the database... What is wrong?
Also here is the excel sheet I am using for testing.
I am attaching all of my code. How do I enter the timestamp to the database then?
It doesn't seem to work. What I did: $d1 = 'strtotime('1/1/2021'); echo $d1;' Echos: '980053200' That in human form is: 'November 30, -0001' Not what I want... any idea why? You are converting the timestamp to a string again using echo, this outputs a unix epoch. You should instead treat $d1 as
Perhaps if you share a bigger part of your code, it would be easier to be of help. It doesn't seem to work. What I did: $d1 = 'strtotime('1/1/2021'); echo $d1;' Echos: '980053200' That in human form is: 'November 30, -0001' Not what I want... any idea why?
Hi Talin,
Hi All,
I have a string: '1/1/2021'. I want to turn this into a timestamp for entering into MySql. I have tried everything I could find. Please let me know how to proceed.
Also, let me know if you need more information.
|