Während ich in meinem PC (local) gearbeitet habe, funktioniert alles gut, aber wenn ich mein Projekt auf einen Server hochgeladen habe, funktionieren alle Querys nicht und ich weiß nicht warum .
Ich benutze querys wie diese:
header('Content-Type: text/html; charset=UTF-8');
include_once '../includes/db_connect.php';
include_once '../includes/psl-config.php';
$mysqli->query("SET NAMES 'utf8'");
$fechaRecibo = mysql_real_escape_string($_POST["fechaRecibo"]);
$nombre = mysql_real_escape_string($_POST["nombre"]);
$recibiDe = mysql_real_escape_string($_POST["recibiDe"]);
$monto = mysql_real_escape_string($_POST["monto"]);
$comentario = mysql_real_escape_string($_POST["comentario"]);
$idUser = mysql_real_escape_string($_POST['idUser']);
$sql = "INSERT INTO vales (fecha, nombre, recibiDe, monto, comentario, created_by) values ('$fechaRecibo','$nombre','$recibiDe','$monto','$comentario','$idUser')";
$res = $mysqli->query($sql);
$lastID = mysqli_insert_id($mysqli);
if ($res){
echo "Éxito"
}
else{
printf("Error message: %s\n", $mysqli->error);
}
Und es zeigt, „Fehlermeldung“ auf dem Bildschirm, aber es sagt nicht, welches der Fehler ist. Es scheint, dass $ mysqli-> error nicht funktioniert. Was ich nicht verstehe, warum es lokal funktioniert und auf einem Server funktioniert es nicht.
Sie aus verschiedenen Bibliotheken heißt nicht Funktionen mischen, wenn Sie mysqli verwenden nicht mysql_real_escape_string verwenden. Und es gibt eine Mischung aus objektorientierten und prozedurorientierten Anrufen. Das mag funktionieren, aber es sieht wirklich komisch aus. Mit mysqli können Sie vorbereitete Anweisungen mit Bind-Platzhaltern verwenden. – spencer7593
Sie sind völlig richtig, ich ändere mysql_real_escape_string zu $ mysqli-> real_escape_string und es funktioniert. Was meinst du mit "Mix aus objektorientierten und prozedurorientierten Anrufen"? Und ja, ich weiß es. Ich sollte Bind-Platzhalter verwenden, aber das Projekt, das mein Chef mir gegeben hat, ist fast zu Ende und es wird eine Menge Arbeit brauchen, um das zu ändern. –