teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

修正

2019/08/26 09:45

投稿

FKM
FKM

スコア3662

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

2

ダブルクオート不要

2019/08/26 09:45

投稿

FKM
FKM

スコア3662

answer CHANGED
@@ -1,4 +1,4 @@
1
- プレースホルダが合致してないっぽい?だとすると、$params['created_at']には空白もしくは警告文の値しか入ってないので、string型はアカンよって怒ってるのもわかるので。
1
+ プレースホルダが合致してないっぽい?だとすると、$params['created_at']には、なまじ不要なダブルクォートで囲っているために、空白もしくは警告文の値しか入ってしまうので、string型はアカンよって怒ってるのもわかるので。
2
2
 
3
3
  `var_dump($params)`で確認してみるのが一番でしょうね。
4
4
 
@@ -7,8 +7,14 @@
7
7
  $params = array(":a" => "$a", ":b" => "$b", "created_at"=>"$created_at");
8
8
  ```
9
9
 
10
- created_atをプレースホルダに対応するようにすればどうでしょう。
10
+ created_atをプレースホルダに対応するようにすればどうでしょう
11
11
  ```PHP
12
12
  $sql = "INSERT INTO test (a, b, created_at) VALUES (:a, :b, :created_at)";
13
13
  $params = array(":a" => "$a", ":b" => "$b", ":created_at"=>"$created_at");
14
+ ```
15
+
16
+ あと、ダブルクォートはあえて使う必要ないですね。
17
+ ```PHP
18
+ $sql = "INSERT INTO test (a, b, created_at) VALUES (:a, :b, :created_at)";
19
+ $params = array(":a" => $a, ":b" => $b, ":created_at"=>$created_at);
14
20
  ```

1

var_dump

2019/08/26 09:43

投稿

FKM
FKM

スコア3662

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