Ben bütün bunların nasıl işlediğini anlamaya çalışırken, şu anda MySQLi etrafında oynuyorum. Sadece her şeyin doğru olduğundan emin olmak için, kodlama ve hızlı bir şekilde benim kod hata ayıklamak için ise benim şimdiki projelerde hep bir sorgu dizesi echo istiyorum. Ama ... ben hazırlanmış bir MySQLi deyimi ile bunu nasıl yapabilirim?
Örnek:
$id = 1;
$baz = 'something';
if ($stmt = $mysqli->prepare("SELECT foo FROM bar WHERE id=? AND baz=?")) {
$stmt->bind_param('is',$id,$baz);
// how to preview this prepared query before acutally executing it?
// $stmt->execute();
}
Ben (http://www.php.net/mysqli) bu listede geçiyor ancak herhangi bir şans olmadan oldum.
EDIT
Bu MySQLi içinde mümkün değil Eh, belki böyle bir şey ile sopa olacak:
function preparedQuery($sql,$params) {
for ($i=0; $i<count($params); $i++) {
$sql = preg_replace('/\?/',$params[$i],$sql,1);
}
return $sql;
}
$id = 1;
$baz = 'something';
$sql = "SELECT foo FROM bar WHERE id=? AND baz=?";
echo preparedQuery($sql,array($id,$baz));
// outputs: SELECT foo FROM bar WHERE id=1 AND baz=something
Mükemmellikten uzak, belli ki hala oldukça gereksiz beri - Ben önlemek istediğim bir şey - ve o da bana MySQLi tarafından veri ile yapılıyor ne gibi bir fikir vermez. Ama bütün veriler mevcut ve doğru yerde olup olmadığını bu şekilde çabucak görebilirsiniz ve elle sorgu içine değişkenler montaj kıyasla some zaman beni kurtaracak sanırım - birçok değişkenler ile bir ağrı olabilir.