私は自分の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は動作しないようです。なぜ私はそれが動作するローカルな方法で働くのか、それはサーバーでは理解できません。
あなたはmysqliのはmysql_real_escape_stringのを使用していない使用している場合、異なるライブラリー、すなわちから機能を混在させないでください。オブジェクト指向とプロシージャ指向の呼び出しが混在しています。それはうまくいくかもしれませんが、それは本当に奇妙に見えます。 mysqliでは、バインドプレースホルダでプリペアドステートメントを使用できます。 – spencer7593
あなたは完全に正しいですが、私はmysql_real_escape_stringを$ mysqli-> real_escape_stringに変更して動作します。 「オブジェクト指向とプロシージャ指向のコールの組み合わせ」とはどういう意味ですか?はい、私は知っています。バインドプレースホルダを使うべきですが、私の上司が私に与えたプロジェクトはほぼ終了しており、それを変更するには多くの作業が必要になります。 –