Pergunta

O recurso MySQLi do PHP é grande.

As declarações preparadas são grandes para injetar parâmetros em uma consulta.

No entanto, se você usar declarações, parece que você não tem acesso ao recurso fetch_assoc mais. Você tem que manualmente ligam todos os seus resultados. Isso quer dizer que meu SQL consulta tem de listar todos os campos, então eu tenho que listar todas as variáveis ??com antecedência quando obtendo os resultados (usando bind_result). Isso pode se tornar muito chato e desperdício de tempo.

Existe uma alternativa?

Graças

Foi útil?

Solução

MySQLi fornece métodos para lidar com isso, ter um olhar para a função result_metadata.

Eu escrevi uma classe para permitir livre de problemas parametrizado MySQLi consultas - um download e informações uso básico está disponível aqui: http://www.robpoyntz.com/blog/?p=191

Outras dicas

Sim, ele é chamado DOP e é geralmente preferido para MySQLi. Ele oferece declarações com o regulares buscar opções, e não forçá-lo a explicitamente ligam todos os parâmetros. Uma consulta típica pode ter esta aparência:

$stmt = $db->prepare("SELECT * FROM foo WHERE a = ?");
$stmt->execute(array($a));

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

DOP é muito flexível, para que ele possa ser usado de outras maneiras também. Há um monte de bons exemplos no manual. Dê uma olhada!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top