【问题标题】:Error: no database selected and undefined index错误:未选择数据库且未定义索引
【发布时间】:2017-03-02 06:32:20
【问题描述】:

我在这里卡了将近一天,我只是找不到正确的解决方案,请帮助我收到未选择数据库的错误,但我收到了连接已创建的消息 我得到的第二个错误是 undefined index "SNo" "clientname" "contact no" "option-3 (its a checkbox)"

HTML格式

<form  action="survey-data-entry.php" name="1st-form" id="form-control" onSubmit="return validate()" method="post" >    
    <label>S.No.</label>
<input type="text" class="form-control" placeholder=" 0451211315" name="SNo" id="s.no"  >
<label>Client Name</label>
<input type="text" class="form-control" name="clientname" id="clientname" />                
<label>Contact No</label>
<input type="text" class="form-control" name="contactno" id="contactno" />
    <strong>Pest Buster  </strong>
<input type="checkbox" name="option_3" id="option_3" value="Pest Buster">

这是 PHP 代码

$hostname = 'localhost';
$username ='root';
$password = '';
$dbname = 'survey-form';

$conn = mysql_connect($hostname, $username, $password, $dbname);
if(!$conn){
    die("connection failed:" .mysql_error());
}
echo "connection hogya successful";



$SNo = $_POST['SNo'];
     $clientname = $_POST['clientname'];
     $contactno = $_POST['contactno'];
     $option_3 = $_POST['option_3'];
$sql= "INSERT INTO php-startup (SNo, clientname, contactno, option_3)
VALUES('SNo', 'clientname', 'contactno ','option_3')";

if(!mysql_query($sql))
{
die('caution' . mysql_error());
}
echo"1 record added";

【问题讨论】:

  • 仔细检查您的数据库名称
  • 这两个代码在同一个页面上?>
  • 您应该停止使用mysql_* 函数并改用mysqli_*PDO。如果使用的技术是最新的,人们更有可能提供帮助。
  • @Akshaysurvey-form 是数据库的名称,表的名称是 php-startup,不,它们在不同的页面上!!!
  • @apokryfos 先生,我也使用过 mysqli,但错误仍然存​​在

标签: php


【解决方案1】:

我不知道“未选择数据库”,因为我没有使用mysql_*的经验

你可以先检查变量是否设置,像这样

if(isset($_POST['SNo']))
{
    $SNo = $_POST['SNo'];
    $clientname = $_POST['clientname'];
    $contactno = $_POST['contactno'];
    $option_3 = $_POST['option_3'];
    $sql= "INSERT INTO php-startup (SNo, clientname, contactno, option_3)VALUES('SNo', 'clientname', 'contactno ','option_3')";

    if(!mysql_query($sql))
    {
        die('caution' . mysql_error());
    }
    echo"1 record added";
}

这将删除未定义的索引错误。并停止使用mysql_* 语法,它们是depecrated。相反,学习使用pdomysqli

【讨论】:

    【解决方案2】:

    数据库连接

    $connection = mysql_connect('localhost', 'mysql_user', 'mysql_password');
    

    然后选择db

    mysql_select_db('database_name',$connection);
    

    然后执行查询

    if(isset($_POST['SNo'])){
             $SNo = $_POST['SNo'];
             $clientname = $_POST['clientname'];
             $contactno = $_POST['contactno'];
             $option_3 = $_POST['option_3'];
        $sql= "INSERT INTO php-startup (SNo, clientname, contactno, option_3)
        VALUES('$SNo', '$clientname', '$contactno','$option_3')";
    
        if(!mysql_query($sql))
        {
            die('caution' . mysql_error());
        }
            echo"1 record added";
    }
    

    【讨论】:

      【解决方案3】:

      mysql_connect 不将数据库名称作为参数see docs。 改变->

      mysql_connect($hostname, $username, $password, $dbname);
      

      ->

       $con = mysql_connect($host, $user, $pass);
          if (!$con) {
              die('Could not connect: ' . mysql_error());
          }
          echo 'Connected successfully';
          mysql_select_db($database_name, $con)
          mysql_close($con);
      

      我会建议使用 mysqli_connect see documentation

      $link = mysqli_connect($host, $user, $password, $database_name);
      
      if (!$link) {
          echo "Error: Unable to connect to MySQL." . PHP_EOL;
      }
      

      【讨论】:

      • 让我试一试
      • 它删除了我的“没有选择数据库”错误非常感谢先生
      猜你喜欢
      • 2018-10-10
      • 1970-01-01
      • 2016-07-14
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 2018-10-19
      • 2017-03-26
      • 1970-01-01
      相关资源
      最近更新 更多