Les instructions préparées créées par mysqli_prepare() sont côté serveur instructions préparées.
Lorsque vous exécutez une instruction préparée, seuls l'ID d'instruction et les paramètres sont transférés, pas une chaîne de requête comme si vous remplaciez les espaces réservés par les paramètres réels (côté client, c'est-à-dire votre script PHP).
Mais vous pouvez voir le résultat dans le journal général du serveur MySQL, voir Prepared Statement Logging
modifier: dans votre cas, la préparation de la déclaration échoue parce que desc
est un mot-clé réservé.
Pour une liste des mots-clés et comment les utiliser comme identifiants (le cas échéant) voir http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
$q = '
INSERT INTO
`event`
(
`cityid`, `name`, `desc`, `date`,
`expdate`, `mintix`, `maxtix`,
`contactname`, `contactemail`, `contactphone`
)
VALUES
(
?,?,?,?,
?,?,?,
?,?,?
)
';
if (false===($stmt=mysqli_prepare($dblink, $q))) {
/*
in production-code you might not want to reveal
the error string to each and every user
...but for this example and for debugging purposes:
*/
die('mysqli_prepare failed: '.htmlspecialchars(mysqli_error($dblink)));
}
$rc = mysqli_stmt_bind_param(
$stmt,
"issssiisss",
$city,$name,$desc,$date,
$expdate,$mintix,$maxtix,
$contactname,$contactemail,$contactphone
);
if (false===$rc) {
die('mysqli_stmt_bind_param failed: '.htmlspecialchars(mysqli_stmt_error($stmt)));
}
if (false===mysqli_stmt_execute($stmt)) {
die('mysqli_stmt_execute failed: '.htmlspecialchars(mysqli_stmt_error($stmt)));
}
mysqli_stmt_close($stmt);
S'il vous plaît nous montrer votre code. Il est difficile de vous aider autrement. –
En plus de ce que byronh a commenté, vous devriez pouvoir stocker votre requête dans une variable, puis {log, echo, save} l'instruction de requête avec le code d'erreur. – bdl
@bdl Je ne pouvais pas trouver un moyen de convertir une instruction préparée en chaîne (je pense que bigmac demande). –