2016-04-28 7 views
0

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.

+0

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

+0

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. –

Antwort

-1

erste haben Sie viele Syntaxfehler dies versuchen:

<?php 

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); 
} 

?> 
+0

Der einzige Unterschied, den ich zwischen Ihrem und meinem Code gefunden habe, ist das letzte "}" der else-Anweisung. –

+0

echo "Éxito" Sie schließen auch nicht die Linie –