2016-04-28 81 views
0

雖然我在我的電腦(本地)工作一切正常,但是當我上傳我的項目到服務器所有querys不起作用,我不知道爲什麼。

我用querys像這樣的:

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

它顯示在屏幕上的「錯誤消息」,但它並沒有說哪一個是錯誤。看來$ mysqli->錯誤不起作用。我不明白爲什麼要以本地方式工作,而在服務器上卻不行。

+0

不要從不同的庫即如果你使用的mysqli不使用mysql_real_escape_string混合功能。還有一些面向對象和麪向過程的調用。這可能有效,但看起來很奇怪。使用mysqli,您可以使用帶有綁定佔位符的預準備語句。 – spencer7593

+0

你完全正確,我將mysql_real_escape_string更改爲$ mysqli-> real_escape_string,它可以工作。你的意思是「混合面向對象和麪向過程的調用」。是的,我知道。我應該使用綁定佔位符,但是我的老闆給我的項目幾乎完成了,需要做很多工作才能改變它。 –

回答

-1

第一你有很多語法錯誤試試這個:

<?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

我在你的代碼和我之間發現的唯一區別是else語句的最後一個「}」。 –

+0

回聲「Éxito」你也不會關閉線路 –