2016-09-19 3 views
-1

나는 데이터베이스 테이블에서 데이터를 선택하려면이 기능을 만들었습니다PHP와 mysqli 준비된 문장

나도 같은 기능을하지만 준비된 명령문이 시간을 만들 수있는 방법
function data_users($dbc,$id){  
    $q = "SELECT * FROM users WHERE id = $id"; 
    $r = mysqli_query($dbc,$q); 
    return $r; 
} 

? 그 후에 보통 다음과 같은 함수를 호출하십시오.

$result = data_users($dbc,$id); 
while ($users_info = mysqli_fetch_assoc($result)) { 
    //do something 
} 

변경 한 후에도 같은 방법을 사용할 수 있습니까?

+1

질문이 이해가 가지 않습니다. –

+0

나는 그것을 읽고 준비된 문장을 만드는 방법을 알고 있지만 함수로 변환하는 방법을 모른다. 그래서 나는 그것을 여러 번 호출 할 수있다. @jeroen –

답변

0
if ($stmt = mysqli_prepare($db, "SELECT * FROM users WHERE id = ?")) { 
mysqli_stmt_bind_param($stmt, "i", $id); 
mysqli_stmt_execute($stmt); 
mysqli_stmt_bind_result($stmt, $result); 
mysqli_stmt_fetch($stmt); 
+0

절차 형으로 보내 주길, 대단히 감사합니다. 귀하의 도움을 –

+0

누구 든지이 답변을 upvoted, 제발 귀하의 투표를 철회하십시오. 이 코드는 작동하지 않습니다. –

+0

내 대답을보세요. 하지만 조언을 해드릴 수 있습니다. 다음 번에 문서를 읽어주십시오. 코드 작성 서비스가 아닙니다. – Infated

1

PHP mysqli의 기능 만이 mysqlnd 드라이버를 기반으로 작성 될 수 있습니다. 이러한 경우에는이처럼 쓸 수 있습니다 : 당신이 개체 구문을 두려워해서는 안

function data_users($dbc,$id){  
    $sql = "SELECT * FROM users WHERE id = ?"; 
    $stmt = $dbc->prepare($sql); 
    $stmt->bind_param("i",$id); 
    $stmt->execute(); 
    $result = $stmt->get_result(); 
    return $result->fetch_assoc(); 
} 

노트, 정말 간단합니다.

+0

도움을 주셔서 감사합니다. (mysqli_connect) 함수를 사용하면 객체 구문을 사용할 수 있습니까? mysqli) –

+0

네, 원하는 구문을 사용할 수 있습니다. 중요하지 않습니다. –

+1

당신의 진정한 관심사는 mysqlnd 드라이버의 유용성입니다. 사용할 수 없다면 mysqli를 잊어 버리고 PDO를 사용하십시오. –