基本的PHP条目失败

时间:2015-06-17 10:15:39

标签: php mysql

我正在设立结婚邀请RSVP表格。我在这里应该是一个基本的PHP和SQL数据条目,但我一直收到错误:

“无法输入数据:未选择数据库”

更新 - 非常感谢你的所有建议。我已经更新了我的代码,你可以看到下面的内容。我现在得到一个新的错误如下:

“无法连接:”(女巫是我在第7行输出的消息,但它没有显示应该遵循的错误“)

有谁知道这意味着什么?

这是我的[更新]代码:

 <?php
function submit(){
  $con = mysqli_connect("localhost", "jaredand_rsvp", "jar3dandcr1st1na", "jaredand_rsvp");

  if (!$con)
  {
    die('Could not connect: ' . $con->error);
  }
  $name = $_POST['name'];
  $partnerName = $_POST['partner_name'];
  $allergies = $_POST['allergies'];
  $comments = $_POST['comment'];
  $going = $_POST['going'];

  $sql =  'INSERT INTO rsvp '.
          '(name,partner_name, allergies, comments, going) '.
          'VALUES ( "'.$name.'", "'.$partnerName.'", "'.$allergies.'", "'.$comments.'", "'.$going.'")';         

  $result = $con->query($sql);

  if(!$result )
  {
    die('Could not enter data: ' . $result->error);
  }
  echo "Entered data successfully\n";

  mysqli_close($con);
}

if(isset($_POST['name']))
{ 
  submit();
} 
?>

任何人都可以告诉我我做错了什么吗?

6 个答案:

答案 0 :(得分:1)

这是因为mysql_connect没有数据库名称作为参数。

您应该连接到服务器,然后通过调用mysql_select_db

选择数据库

干杯!

答案 1 :(得分:0)

首先尝试连接数据库,然后选择数据库名称

我希望这可以解决您的问题

或者您可以使用PDO,因为mysql_connect已被删除

答案 2 :(得分:0)

如何使用MySQLi而不是现在贬值的MySQL?

修改

好的,我看不到与数据库的连接。像

这样的东西
<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?> 

如果您已将db connect凭证存储在另一个文件上,那么我在此脚本上看不到包含或要求提及。检查您是否已建立连接,然后再返回。

答案 3 :(得分:0)

这是正确的方法

$con = mysql_connect("localhost","USERNAME","PASSWORD);
mysql_select_db('jaredand_rsvp', $con);

但请使用“mysqli”

$con = mysqli_connect("localhost", "USERNAME", "PASSWORD, "jaredand_rsvp");
$result = $con->query($sql);

很乐意提供帮助, 如果在插入之前转义值,安全性会更好:

  $name = $con->real_escape_string($_POST['name']);
  $partnerName = $con->real_escape_string($_POST['partner_name']);
  $allergies = $con->real_escape_string($_POST['allergies']);
  $comments = $con->real_escape_string($_POST['comment']);
  $going = $con->real_escape_string($_POST['going']);

答案 4 :(得分:0)

您使用过$ con = mysql_connect();你在顶部和底部使用:
mysqli_close();

首先遵循相同的标准。在top.i.e使用mysqli而不是sqli, $con = mysqli_connect("localhost","USERNAME","PASSWORD", "jaredand_rsvp");

删除该行:mysql_select_db('jaredand_rsvp'); 并用{替换$retval = mysql_query( $sql, $con ); $retval = mysqli_query( $sql, $con );

答案 5 :(得分:0)

以另一种方式使用

<?php
    function submit() {
        $host = "localhost";
        $username = "root";
        $password = "";
        $dbname = "jaredand_rsvp";

        $con = new mysqli($host, $username, $password, $dbname);
        if ($conn -> connect_error) {
            die("Connection failed: " . $conn -> connect_error);
        }


        $name = $_POST['name'];
        $partnerName = $_POST['partner_name'];
        $allergies = $_POST['allergies'];
        $comments = $_POST['comment'];
        $going = $_POST['going'];

        $sql = 'INSERT INTO rsvp ' . '(name,partner_name, allergies, comments, going) ' . 'VALUES ( "' . $name . '", "' . $partnerName . '", "' . $allergies . '", "' . $comments . '", "' . $going . '")';

        if($con->query($sql)== TRUE){
        echo "Data Inserted";
        }
    else {
            echo mysqli_error($con);
    }


        mysqli_close($con);
    }

    if (isset($_POST['name'])) {
        submit();
    }
?>