Estoy tratando de entender la diferencia entre mysqli's query() y prepare(). Tengo código como a continuación, y me gustaría obtener los mismos resultados de ambos. Sin embargo, la preparación() no funciona como se esperaba. ¿por qué?prepare() vs query() mysqli
// this works
if ($query = $this->db->query("SELECT html FROM static_pages WHERE page = 'cities'")) {
$result = $query->fetch_row();
echo $result[0];
$query->close();
}
//this does not work
//result is empty
$cities = 'cities';
$stmt = $this->db->prepare("SELECT html FROM static_pages WHERE page = ?");
$stmt -> bind_param("s", $cities);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
echo $result;
$stmt->close();
$this->db->close();
estos son mis configuraciones de servidor conforme a lo solicitado:
OS
Vista 64bit/PHP versión 5.2.9
mysqli
Mysqli apoyo permitió
API de cliente de biblioteca versión 5.0.51a
API del cliente de la versión 5.0.51a cabecera
MYSQLI_SOCKET /tmp/mysql.sock
Directiva local Valor Valor Maestro
mysqli. default_host ningún valor sin valor
mysqli.default_port 3306 3306
mysqli.default_pw ningún valor sin valor
mysqli.default_socket ningún valor sin valor
mysqli.default_user ningún valor sin valor
mysqli.max_links Ilimitado Ilimitado
mysqli.reconnect Off Off
tiene que imprimir $ stmt-> error() para ver qué está pasando mal. –
Ah, perdón, moi, es una variable, no un método. $ stmt-> error –
En ese caso, $ stmt-> error no tiene ningún valor. Lo intenté en todas las líneas. – Mike