2016-04-28 16 views
0

私は自分のPC(ローカル)で作業していましたが、すべて正常に動作しますが、私のプロジェクトをサーバにアップロードしたときにはすべてのクエリーがうまく動作せず、 。

私はこの1つのような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); 
} 

をして、画面上の「エラーメッセージ」を示しているが、それは誤りである1言っていません。 $ mysqli-> errorは動作しないようです。なぜ私はそれが動作するローカルな方法で働くのか、それはサーバーでは理解できません。

+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

echo "Éxito"あなたもラインを閉じることはありません –