mysqliを使用してinsertを行なおうとしているのですが、最後のreturn true;まで処理が流れているのですが、DBにデータが追加されません。insert-の処理で不足している部分があれば教えていただけないでしょうか?
それと、insertを行ったデータの件数も取得したいのですが、現状nullが格納されて処理を終えてしまいます。insertの結果の件数を取得する方法も加えて教えてくれると助かります。
php
1function insert($sql, $params, &$count=0){ 2 $mysqli = get_connection(); 3 if(is_null($mysqli)){ 4 return false; 5 } 6 if(!is_array($params))$params = array(); 7 8 if(count($params)>0){ 9 //パラメータが1つ以上存在する場合 10 $stmt = mysqli_stmt_init($mysqli); 11 if(!mysqli_stmt_prepare($stmt, $sql)){ 12 //SQLステートメント実行準備失敗 13 return false; 14 } 15 $stmt_params = array($stmt, ''); 16 foreach($params as $idx => $value){ 17 if(is_int($value))$stmt_params[1] .= 'i'; 18 else if(is_float($value))$stmt_params[1] .= 'd'; 19 else if(is_string($value))$stmt_params[1] .= 's'; 20 $stmt_params[] = &$params[$idx]; 21 } 22 call_user_func_array( "mysqli_stmt_bind_param" ,$stmt_params ); 23 if(!mysqli_stmt_execute($stmt)){ 24 //SQLステートメント実行失敗 25 return false; 26 } 27 28 $result = mysqli_stmt_get_result($stmt); 29 }else{ 30 //上記以外の場合 31 $result = mysqli_query($mysqli, $sql, MYSQLI_STORE_RESULT ); 32 } 33 34 //更新件数取得 35 $count = mysqli_affected_rows($result); 36 37 mysqli_free_result($result); 38 mysqli_close($mysqli); 39 40 return true; 41 42}
sql
1insert into USER( 2 create_date 3 ,user_name 4 ,user_password 5)values( 6 now() 7 ,? 8 ,? 9)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/02/17 12:18