如何修复警告mysqli_select_db()

时间:2017-02-14 17:44:56

标签: php html mysql forms mysqli

我创建了connection.php文件并在其中编写了代码: 这是代码: -

<?php
$connection=mysqli_connect("localhost","root","");
if($connection)
{
    echo "database  connected: ";
}
?>

现在这样做之后我创建了另一个文件form.php并将代码写入其中: 这是代码: -

<?php
require_once("connection.php");
if($_POST['submit'])
{
    $fn=$_POST['fname'];
    $ln=$_POST['lname'];
    mysqli_select_db("class",$connection);
    $query="INSERT INTO student(id,firstname,lastname) VALUES('','$fn','$ln')";
    if(mysqli_query($query,$connection))
    {
        echo "inserted sucessfully:";
    }
    else
    {
        echo " error occured";
    }
}
?>

问题是我在第7行遇到错误。这是一个错误: -

  

致命错误:未捕获错误:调用未定义的函数   第7行的F:\ wamp \ www \ MyphpPages \ form.php中的mysql_select_db()

     

(!)错误:调用未定义的函数mysql_select_db()   第7行的F:\ wamp \ www \ MyphpPages \ form.php

我尝试将mysql_select_db替换为mysqli_select_db但是当我这样做时发生了错误: -

  

警告:mysqli_select_db()期望参数1为mysqli,string   在第7行给出

我的动机是将数据插入表单并保存到mysql数据库中 但是不能帮助我吗?

2 个答案:

答案 0 :(得分:3)

有很多错误: -

基于: - http://php.net/manual/en/mysqli.select-db.php

首先需要提供连接对象。所以它应该是: -

mysqli_select_db($connection,"class");

顺便说一句,你可以通过在下面的连接代码中提供数据库名称来削减这一行: -

$connection=mysqli_connect("localhost","root","","class");

同时更改如下相应的行: -

$query="INSERT INTO student(firstname,lastname) VALUES('$fn','$ln')";

if(mysqli_query($connection,$query))

注意: -

乍一看这个问题很多

此外,您的错误正在显示,似乎您正在将mysql_*mysqli_*混合。不要这样做

您的代码对SQL注入是开放的。因此,请尝试阅读prepared statements并使用它们。谢谢

答案 1 :(得分:1)

由于错误消息指出mysqli_select_db()期望参数1为mysqli。这意味着您的代码应该是

mysqli_select_db($mysqli, $dbname);

使用

初始化$mysqli的位置
$mysqli= mysqli_connect("example.com", "user", "password", "database");

(您的$connection,我认为)和$dbname是您尝试选择的数据库的名称。 (&#34;班级&#34;,我认为)

更多信息:
http://php.net/manual/en/function.mysqli-connect.php
http://php.net/manual/en/mysqli.select-db.php

此外,PDO是使用PHP处理数据库连接的优先方式,afaik。

编辑:另外,我认为您的mysqli_query()函数编写错误,因为它需要$link个对象作为第一个参数,而$query作为第一个参数第二个。

所以mysqli_query($connection, $query)