php預處理查詢
$query='insert into p1(info) values(?)'; $query2='select info from p1 where id=?'; $country=2; // 創建預處理語句 $stmt=mysqli_stmt_init($link); if (mysqli_stmt_prepare($stmt,$query2)) { // 綁定參數 mysqli_stmt_bind_param($stmt,"i",$country); // 執行查詢 mysqli_stmt_execute($stmt); // 綁定結果變量 mysqli_stmt_bind_result($stmt,$name); //此處的變量有幾個查詢參數就返回寫幾個 // 獲取值 mysqli_stmt_fetch($stmt); printf("國家的網站為:%s",$name); // 關閉預處理語句 mysqli_stmt_close($stmt); }
循環取數據
$query2='select id,info from p1 where id=? or id=?'; $country=2; $country2=10; // 創建預處理語句 $stmt=mysqli_stmt_init($link); if (mysqli_stmt_prepare($stmt,$query2)) { // 綁定參數 mysqli_stmt_bind_param($stmt,"ii",$country,$country2); // 執行查詢 mysqli_stmt_execute($stmt); //暑促一個對行數的影響 var_dump(mysqli_affected_rows($link)) ; // 綁定結果變量 mysqli_stmt_bind_result($stmt,$id,$name); // 獲取值 while(mysqli_stmt_fetch($stmt)){ printf("查詢結果:%s,%s",$id,$name); }
php預處理插入
$query='insert into p1(info) values(?)'; $country=2; // 創建預處理語句 $stmt=mysqli_stmt_init($link); // 綁定參數 if (mysqli_stmt_prepare($stmt,$query)) { // 綁定參數 mysqli_stmt_bind_param($stmt,"s",$country); // 關閉預處理語句 mysqli_stmt_close($stmt); }
補充
從一個prepared語句返回結果集元數據,配合相關函數,可以用來獲得字段的相關信息
mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt $stmt );
①mysqli_fetch_field();
②mysqli_fetch_fields();
取回一個結果集
bool mysqli_stmt_store_result ( mysqli_stmt $stmt );
取回之后可以使用int mysqli_stmt_num_rows ( mysqli_stmt $stmt );返回語句結果集中的行數
釋放給定語句處理存儲的結果集所占內存
void mysqli_stmt_free_result ( mysqli_stmt $stmt );
關閉一個prepared語句
bool mysqli_stmt_close ( mysqli_stmt $stmt );
//從一個prepared語句返回結果集元數據,配合相關函數,可以用來獲得字段的相關信息================== var_dump($a=mysqli_stmt_result_metadata ($stmt )); //獲取字段信息 var_dump(mysqli_fetch_field($a)); var_dump(mysqli_fetch_field($a));