回答編集履歴

3

修正

2019/08/26 09:45

投稿

FKM
FKM

スコア3644

test CHANGED
@@ -1,4 +1,4 @@
1
- プレースホルダが合致してないっぽい?だとすると、$params['created_at']には、なまじ不要なダブルクォートで囲っているために、空白もしくは警告文の値か入ってしまうので、string型はアカンよって怒ってるのもわかるので
1
+ プレースホルダが合致してないっぽい?だとすると、$params['created_at']には、なまじ不要なダブルクォートで囲っているために、空白もしくは警告文の値が(undefined...と)が入ってしまう可能性があるので、string型はアカンよって怒ってるのも合点がいきます
2
2
 
3
3
 
4
4
 

2

ダブルクオート不要

2019/08/26 09:45

投稿

FKM
FKM

スコア3644

test CHANGED
@@ -1,4 +1,4 @@
1
- プレースホルダが合致してないっぽい?だとすると、$params['created_at']には空白もしくは警告文の値しか入ってないので、string型はアカンよって怒ってるのもわかるので。
1
+ プレースホルダが合致してないっぽい?だとすると、$params['created_at']には、なまじ不要なダブルクォートで囲っているために、空白もしくは警告文の値しか入ってしまうので、string型はアカンよって怒ってるのもわかるので。
2
2
 
3
3
 
4
4
 
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- created_atをプレースホルダに対応するようにすればどうでしょう。
19
+ created_atをプレースホルダに対応するようにすればどうでしょう
20
20
 
21
21
  ```PHP
22
22
 
@@ -25,3 +25,15 @@
25
25
  $params = array(":a" => "$a", ":b" => "$b", ":created_at"=>"$created_at");
26
26
 
27
27
  ```
28
+
29
+
30
+
31
+ あと、ダブルクォートはあえて使う必要ないですね。
32
+
33
+ ```PHP
34
+
35
+ $sql = "INSERT INTO test (a, b, created_at) VALUES (:a, :b, :created_at)";
36
+
37
+ $params = array(":a" => $a, ":b" => $b, ":created_at"=>$created_at);
38
+
39
+ ```

1

var_dump

2019/08/26 09:43

投稿

FKM
FKM

スコア3644

test CHANGED
@@ -1,4 +1,8 @@
1
- プレースホルダが合致してないっぽい?だとすると、$params['created_at']には空白の値しか入ってないので、string型はアカンよって怒ってるのもわかる
1
+ プレースホルダが合致してないっぽい?だとすると、$params['created_at']には空白もしくは警告文の値しか入ってないので、string型はアカンよって怒ってるのもわかるので。
2
+
3
+
4
+
5
+ `var_dump($params)`で確認してみるのが一番でしょうね。
2
6
 
3
7
 
4
8