こんにちは、私はPHPでforeachと爆発でエラーを処理しています。 なぜこのことがテキスト領域の最初の2行だけで起こっているのかわかりません。foreachでのエラー処理と爆発PHP
私のコードは次のようである:
<?php
if(isset($_POST["button"])){
$btn=$_POST["button"];
if($btn=="Cargar horarios"){
$input = $conn->real_escape_string($_POST["lineas"]);
$linea = explode("NO ?", $input);
foreach($linea as $element){
$datos = explode(" ", $element);
$fecha = $datos[0];
$hora = $datos[1];
$empleado_key = $datos[2];
$sql = "SELECT * FROM jornada WHERE jornada_fecha='$fecha' AND empleados_key='$empleado_key'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$sql = "UPDATE jornada SET jornada_salida='$hora' WHERE jornada_fecha='$fecha' AND empleados_key='$empleado_key'";
if ($conn->query($sql) === TRUE) {
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
} else {
$sql = "INSERT INTO jornada (jornada_fecha, jornada_entrada, empleados_key) VALUES ('$fecha', '$hora', '$empleado_key')";
if ($conn->query($sql) === TRUE) {
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
}
}
}
?>
私はテキストエリアに置くテキストは以下の通りです:
18/08/2016 08:00 34415 NO ?
18/08/2016 17:56 34415 NO ?
16/08/2016 07:56 34415 NO ?
16/08/2016 14:56 34415 NO ?
17/08/2016 07:56 34415 NO ?
17/08/2016 15:56 34415 NO ?
に提出し、これは次のようなエラーが表示されます。
Undefined offset: 1 in /home/bgxryqet/public_html/sistema/horarios/cargar-horarios.php on line 88
Undefined offset: 2 in /home/bgxryqet/public_html/sistema/horarios/cargar-horarios.php on line 89
送信した後、それは私のデータベースに空の行を作成し、firts 2行が正しく動作していない、ここではイメージです私は改行で爆発しようとしてい
、それは私のために働いていなかった。どうするか私のデシベルがどのように見えるの後に提出します。
**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli)を使用する必要があります。 .quickstart.prepared-statements.php)と['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **正しくエスケープするのを忘れた場合、重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成するため、手動エスケープと文字列補間または連結を使用しないでください。 – tadman