質問編集履歴

2

修正

2017/04/13 08:52

投稿

coko1
coko1

スコア276

test CHANGED
File without changes
test CHANGED
@@ -1,112 +1,6 @@
1
1
  現在、mysqliを使用してデータの登録、更新の処理を行っているのですが、int型のカラムにnullを登録しようとしても失敗してしまいます。整数での登録、更新は以下のソースで問題なく行えているのですが、どのようにしたらnullを設定できるのでしょうか?
2
2
 
3
3
 
4
-
5
- ```php
6
-
7
- function update($sql, $params, &$count=0){
8
-
9
- $mysqli = get_connection();
10
-
11
- if(is_null($mysqli)){
12
-
13
- return false;
14
-
15
- }
16
-
17
- if(!is_array($params))$params = array();
18
-
19
-
20
-
21
- mysqli_autocommit($mysqli, TRUE);
22
-
23
-
24
-
25
- if(count($params)>0){
26
-
27
-
28
-
29
- //パラメータが1つ以上存在する場合
30
-
31
- $stmt = mysqli_stmt_init($mysqli);
32
-
33
- if(!mysqli_stmt_prepare($stmt, $sql)){
34
-
35
- //SQLステートメント実行準備失敗
36
-
37
- return false;
38
-
39
- }
40
-
41
- $stmt_params = array($stmt, '');
42
-
43
- foreach($params as $idx => $value){
44
-
45
- if(is_int($value))$stmt_params[1] .= 'i';
46
-
47
- else if(is_float($value))$stmt_params[1] .= 'd';
48
-
49
- else if(is_string($value))$stmt_params[1] .= 's';
50
-
51
- $stmt_params[] = &$params[$idx];
52
-
53
- }
54
-
55
- call_user_func_array( "mysqli_stmt_bind_param" ,$stmt_params );
56
-
57
- if(!mysqli_stmt_execute($stmt)){
58
-
59
- //SQLステートメント実行失敗
60
-
61
- return false;
62
-
63
- }
64
-
65
-
66
-
67
- //$result = mysqli_stmt_get_result($stmt);
68
-
69
- }else{
70
-
71
- //上記以外の場合
72
-
73
- //$result = mysqli_query($mysqli, $sql, MYSQLI_STORE_RESULT );
74
-
75
- mysqli_query($mysqli, $sql, MYSQLI_STORE_RESULT );
76
-
77
- }
78
-
79
- /*
80
-
81
- //トランザクションをコミット
82
-
83
- if (!mysqli_commit($mysqli)) {
84
-
85
- //コミット失敗
86
-
87
- return false;
88
-
89
- }*/
90
-
91
-
92
-
93
- //更新件数取得
94
-
95
- $count = mysqli_affected_rows($mysqli);
96
-
97
-
98
-
99
- mysqli_free_result($result);
100
-
101
- mysqli_close($mysqli);
102
-
103
-
104
-
105
- return true;
106
-
107
- }
108
-
109
- ```
110
4
 
111
5
 
112
6
 

1

修正

2017/04/13 08:52

投稿

coko1
coko1

スコア276

test CHANGED
File without changes
test CHANGED
@@ -112,7 +112,7 @@
112
112
 
113
113
  ```
114
114
 
115
- //パラメータ
115
+ //$params内容
116
116
 
117
117
  array(
118
118