MAMP无法建立数据库连接

时间:2016-03-02 23:53:22

标签: php mysql mysqli mamp mamp-pro

我试图将数据从多页表单保存到数据库中。我跟着this tutorial,但连接总是失败。当我运行PHP7时,我不得不从mysql_connect更改为mysqli_connect,所以这可能是问题的一部分。这是代码:

<?php
  session_start();
  if (isset($_POST['state'])) {
  if (!empty($_SESSION['post'])){
  if (empty($_POST['address1'])
  || empty($_POST['city'])
  || empty($_POST['pin'])
  || empty($_POST['state'])){
  // Setting error for page 3.
  $_SESSION['error_page3'] = "Mandatory field(s) are missing, Please fill it again";
  header("location: finder-step-3.php"); // Redirecting to third page.
  } else {
  foreach ($_POST as $key => $value) {
  $_SESSION['post'][$key] = $value;
  }
  extract($_SESSION['post']); // Function to extract array.
  $connection = mysqli_connect("localhost", "root", "root");
  $db = mysqli_select_db($connection, "finder_form"); // Storing values in database.
  $query = mysqli_query($db, "insert into detail (name,email,contact,password,religion,nationality,gender,qualification,experience,address1,address2,city,pin,state) values('$name','$email','$contact','$password','$religion','$nationality','$gender','$qualification','$experience','$address1','$address2','$city','$pin','$state')", $connection);
  if ($query) {
  echo '<p><span id="success">Form Submitted successfully..!!</span></p>';
  } else {
  echo '<p><span>Form Submission Failed..!!</span></p>';
  }
  unset($_SESSION['post']); // Destroying session.
  }
  } else {
  header("location: finder-step-1.php"); // Redirecting to first page.
  }
  } else {
  header("location: finder-step-1.php"); // Redirecting to first page.
  }
  ?>

有人能找到我错的地方吗?提前谢谢!

更新1:

@Damon Swayn,我已将其更改为以下但仍收到表单提交失败消息:

$connection = mysqli_connect("localhost", "root", "root", "finder_form");
  $query = mysqli_query($connection, "insert into detail (name,email,contact,password,religion,nationality,gender,qualification,experience,address1,address2,city,pin,state) values('$name','$email','$contact','$password','$religion','$nationality','$gender','$qualification','$experience','$address1','$address2','$city','$pin','$state')", $connection);
  if ($query) {
  echo '<p><span id="success">Form Submitted successfully..!!</span></p>';
  } else {
  echo '<p><span>Form Submission Failed..!!</span></p>';
  }

@lps,我在同一目录的test.php页面上设置了以下内容并成功连接:

<?php
$con = mysqli_connect('localhost', 'root', 'root') or die('Could not connect the database : Username or password incorrect');
mysqli_select_db($con, 'finder_form') or die ('No database found');
echo 'Database Connected successfully';
?>

更新2:已解决

Damon Swayn建议的更改有效,我只需要在查询结束时删除$连接。这是工作代码:

$connection = mysqli_connect("localhost", "root", "root", "finder_form");
  $query = mysqli_query($connection, "insert into detail (name,email,contact,password,religion,nationality,gender,qualification,experience,address1,address2,city,pin,state) values('$name','$email','$contact','$password','$religion','$nationality','$gender','$qualification','$experience','$address1','$address2','$city','$pin','$state')");
  if ($query) {
  echo '<p><span id="success">Form Submitted successfully..!!</span></p>';
  } else {
  echo '<p><span>Form Submission Failed..!!</span></p>';
  }

1 个答案:

答案 0 :(得分:0)

mysqli_connect()可以使用4个参数,第四个是数据库名称。

您使用mysqli_select_db()的返回值作为每次后续调用的连接参数,mysqli_select_db()返回布尔值true / false值,尝试在以下调用中替换$db参数使用mysqli_select_db()变量$connection之后。