PHP ve mysqli - dizi döngü ve mağaza ile Bind parametreleri?

1 Cevap php

Aşağıda benim tablodan birden veri almak için kullanıyorum fonksiyonu için benim kod, ama ben öyleyim alanların sayısına bağlı olarak otomatik olarak oluşturulur edilecek ([0], ..., .. $ dizi) bind_result kullanmak istiyorum Sorguda seçilmesi.

örneğin ..

$query=select a,b,c,d,e from table;//selecting 5 fields
......
$stmt->execute();$stmt->bind_result($retrieve[0],$retrieve[1],$retrieve[2],$retrieve[3],$retrieve[4]);

(the bind_result for 5 values should be automatically generated) Help will be appreciated ...Thanks

$query="SELECT comment, userid,UNIX_TIMESTAMP(dtime)
				FROM comment_updates
				WHERE updateid=46546
				ORDER BY dtime DESC
				LIMIT 10 ";
		if($stmt = $this->conn->prepare($query)) {
			$stmt->execute();
			$stmt->bind_result($comments[0],$comments[1],$comments[2]);
			$i=0;
			while($stmt->fetch()){
			$i++;
			$name='t'.$i;
			$$name = array($comments[0],$comments[1],$comments[2]);
			}
			return array($i,$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10);
			$stmt->close();
		}

1 Cevap

Bu başlamak gerekir:

http://php.net/manual/en/mysqli-stmt.result-metadata.php

Bu size mysqli_num_fields() aracılığıyla resultset'de alanların sayısını alacak.

Bu $retrieve dizinin boyutu olmalıdır.

bind_result, bir argüman olarak bir dizi almaz gibi, call_user_func_array bunu başarmak için kullanmak gerekir:

call_user_func_array(array($stmt, 'bind_result'), $retrieve_references);

$retrieve_references $retrieve elemanların referans bir dizi olmalıdır. $retrieve kendisi kullanarak call_user_func_array bir hataya neden olacaktır.