将变量传递给mysqli预处理语句

时间:2018-06-05 22:25:52

标签: php sql mysqli prepared-statement

我在业余时间使用你的管和w3学校自学了php。到目前为止,我已经取得了很大的成功,但是遇到了一个特定的问题。

我正在尝试使用预准备语句将数据加载到数据库中(Xampp myphp admin)。我在下面附上了我的代码,并根据互联网搜索进行了一系列测试。当我运行代码时,我没有收到错误消息,但没有任何内容插入到我的数据库中我相当肯定将变量传递给bind_param()占位符。

请忽略标题与数据类型不匹配的事实,因为我希望首先将数据插入数据库。

由于

<?php

include 'dbh.php';

class AddData extends Dbh {

public function submitTableData(){

$dateErr = $starttimeErr = $finishtimeErr = $durationErr = $taskErr = $entityErr = $completeErr = $commentsErr = "";
$date = $starttime = $finishtime = $duration = $task = $entity = $complete = $comments = "";

$query = "INSERT INTO testtable(Date, Starttime, Finishtime, Duration, Task, Entity, Complete, Comments) VALUES (?,?,?,?,?,?,?,?)";

$stmt= $this->connect()->prepare($query);

$stmt->bind_param("ssssssss", $date, $starttime, $finishtime, $duration, $task, $entity, $complete, $comments);

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return  $data;
}

for ($x = 0; $x < 1; $x++) {

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["date"][$x])) {
    $dateErr = "date is required";
  } else {
    $date = test_input($_POST["date"][$x]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$date)) {
      $dateErr = "Only letters and white space allowed"; 
    }
  }

    if (empty($_POST["starttime"][$x])) {
    $starttimeErr = "starttime  is required";
  } else {
    $starttime  = test_input($_POST["starttime"][$x]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$starttime )) {
      $starttimeErr = "Only letters and white space allowed"; 
    }
  }

      if (empty($_POST["finishtime"][$x])) {
    $finsihtimeErr = "finishtime is required";
  } else {
    $finishtime = test_input($_POST["finishtime"][$x]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$finishtime)) {
      $finishtimeErr = "Only letters and white space allowed"; 
    }
  }

      if (empty($_POST["duration"][$x])) {
    $durationErr = "Name is required";
  } else {
    $duration = test_input($_POST["duration"][$x]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$duration)) {
      $durationErr = "Only letters and white space allowed"; 
    }
  }

      if (empty($_POST["task"][$x])) {
    $taskErr = "task is required";
  } else {
    $task = test_input($_POST["task"][$x]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$task)) {
      $taskErr = "Only letters and white space allowed"; 
    }
  }

      if (empty($_POST["entity"][$x])) {
    $entityErr = "Name is required";
  } else {
    $entity = test_input($_POST["entity"][$x]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$entity)) {
      $entityErr = "Only letters and white space allowed"; 
    }
  }

      if (empty($_POST["complete"][$x])) {
    $completeErr = "complete is required";
  } else {
    $complete = test_input($_POST["complete"][$x]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$complete)) {
      $completeErr = "Only letters and white space allowed"; 
    }
  }

      if (empty($_POST["comments"][$x])) {
    $commentsErr = "comments is required";
  } else {
    $comments = test_input($_POST["comments"][$x]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$comments)) {
      $commentsErr = "Only letters and white space allowed"; 
    }
  }
  }
   $stmt->execute();
}
 $stmt->close();
 $this->connect()->close();
}
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $t1 = new AddData;
    $t1->submitTableData();
    }

?>

0 个答案:

没有答案