2016-04-28 76 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”你也不会关闭线路 –