【问题标题】:Why is it saying no database selected?为什么说没有选择数据库?
【发布时间】:2016-04-14 09:53:43
【问题描述】:

当尝试将数据发布到数据库时,它会给出一个错误,说没有选择数据库。但是数据库中的内容显示在表格和选择菜单上。

<?php
$con = mysqli_connect("localhost", "root", "","radian");
if(!$con)
{
  exit("Couldn't connect: ".mysqli_connect_error());
}
mysqli_set_charset($con, "utf8");

$insert_data = "UPDATE enquiries 
                  SET ResponseDate = '".$current_date."',
                      Response = '".$txtResponse."',
                      Enquiry_No = '".$_SESSION['ses_staff']
                  ."' WHERE Enquiry_No = '".$txtStudentId."'";

$execute = mysql_query($insert_data) or die(mysql_error());

$output= '<h4 style="margin-left:1em;width:15em;color:red;"> Response successful!. </h4>';   

}else{

    $output= '<h4 style="margin-left:1em;width:15em;color:red;"> </h4>';   
}

【问题讨论】:

  • 你在混合mysqlimysql
  • mysql_query($insert_data) or die(mysql_error()); - 哇。您从 mysqli_ 正确开始,然后使用 mysql_
  • 你有一个孤立的} else {
  • 请勿使用mysql_*,它已被删除且不再起作用,请改用PDO linkmysqli link
  • 明智地缩进你的代码,错误告诉你

标签: php mysql database


【解决方案1】:

您的最终代码应与以下内容相同:

<?php
    $con = mysqli_connect("localhost", "root", "", "radian");
    if (!$con) {
        exit("Couldn't connect: " . mysqli_connect_error());
    }
    mysqli_set_charset($con, "utf8");

    $insert_data = "UPDATE enquiries SET ResponseDate = '" . $current_date . "', Response = '" . $txtResponse . "',Enquiry_No = '" . $_SESSION['ses_staff'] . "' WHERE Enquiry_No = '" . $txtStudentId . "'";

    $execute = mysqli_query($con, $insert_data) or die(mysqli_error($con));

    $output = '<h4 style="margin-left:1em;
    width:15em;
    color:red;"> Response successful!. </h4>';

所做的更改:

  • 删除mysql_* 的所有实例并替换为正确的mysqli_* 函数。
  • 删除孤立的} else {

注意:官方不推荐使用mysql_* 函数。所以没有必要使用它们。使用 mysqli_* 或 PDO。

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多