[PHP] Prepared Statement 에서 동적으로 파라미터 바인딩

일반적으로 MySQLi Prepared Statement 를 사용할 때는 아래와 같이 한다. <?php $sql = ” select mb_name from `{$db[‘member_table’]}` where mb_id = ? “; $stmt = $mysqli->stmt_init(); $stmt->prepare($sql); $stmt->bind_param(‘s’, $mb_id); $stmt->execute(); $stmt->bind_result($mb_name); $stmt->fetch(); $stmt->close(); ?> 파라미터가 정해져있다면 위 코드는 문제가 없다. 그러나  회원리스트 등에서 검색을 처리하는 등의 과정에서 파라미터 개수가 때에 따라 변하게 된다. 이럴 때 […]

Read More

[PHP] MySQLi prepared statement 결과를 배열로 얻기

아래의 쿼리를 실행한 후 MySQLi prepared statement(이하 stmt) 의 결과를 field=>value 형태의 배열로 얻는 방법이다. select name, email from member where id = ‘abc’ stmt 실행 후 bind_result 메서드를 이용해 각 변수에 값을 얻게 되는데 쿼리문에 필드가 많을 경우 각각의 변수를 할당해야 하기 때문에 조금은 짜증나는 작업이 된다. 이 때 필드명을 키로 하는 배열로 결과를 […]

Read More

MySQLi 환경에서 특정 테이블 모든 필드명 구하기

<?php function get_field_names($table, $link) { $columns = array(); $sql = ” select * from `$table` limit 1 “; $result = mysqli_query($link, $sql); while($field = mysqli_fetch_field($result)) { $columns[] = $field->name; } return $columns; } $link = mysqli_connect($host, $user, $pass, $db); if(!$link) { die(‘Connect Error (‘ . mysqli_connect_errno() . ‘) ‘ . mysqli_connect_error()); } $row = get_field_names(‘member’, […]

Read More