繁体   English   中英

通过html向mysql表添加新值

[英]Adding new values to mysql table through html

我正在尝试通过我的网页向 mysql 上的数据库添加新元素。

这是我到目前为止所得到的

<form action="MyCurrentPage.php" method="post" >
<label for="playername"> Player </label>
<input type="text" name="addplayer" id="playername"/>
<input type= "submit" value="submit" name="submit"/>
</form>

和这个

<?php
 if (isset($_POST['submit'])) {
     $addplayerv=$_POST['addplayer'];
     $mysqli->select_db("player", $player);

     $sql="INSERT INTO player (nameofplayer) VALUES ('".$addplayerv."')";
    $mysqli->query($sql, $mysqli);
    $mysqli->close($mysqli);
     }


?>

我收到以下错误:

  • 注意:未定义变量:player
  • 警告:mysqli::select_db() 需要 1 个参数,2 个给定
  • 警告:mysqli::query() 期望参数 2 是整数,对象给定
  • 警告:mysqli::close() 需要 0 个参数,1 个给定

你还没有声明$player你应该先这样做。 如果您像这样使用$mysli mysli,则select_db()函数是不必要的: $mysqli = new mysqli("localhost", "user", "password", "database");

你的查询应该在你用这一行执行这些步骤后执行: mysqli_query($mysqli,"INSERT INTO player (nameofplayer) VALUES ('".$addplayerv."')");

正如您从错误中看到的那样; 1. 您似乎没有数据库连接。 2. 比 mysqli_ 更喜欢 PDO

我会这样做:

<?php
//DATABASE CONNECTION CONFIGURATION:
defined("HOST")     or define("HOST",   "localhost");           //REPLACE WITH YOUR DB-HOST
defined("DBASE")    or define("DBASE",  "my_database");         //REPLACE WITH YOUR DB NAME
defined("USER")     or define("USER",   "root");                //REPLACE WITH YOUR DB-USER
defined("PASS")     or define("PASS",   "root");                //REPLACE WITH YOUR DB-PASS


if (isset($_POST['submit'])) {
    $playerName     = htmlspecialchars(trim($_POST['addplayer']));  //PROTECT AGAINST ATTACKS

    try {
        $dbh        = new PDO('mysql:host='.HOST.';dbname='. DBASE,USER,PASS);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt       = $dbh->prepare("INSERT INTO player (nameofplayer) VALUES (:name)");
        $stmt->bindParam(':name', $playerName);
        $stmt->execute();

        //GARBAGE COLLECTION 
        $dbh        = null;
    }catch(PDOException $e){
        echo $e->getMessage();
    }


}

我希望这有帮助...

<?php
    if (isset($_POST['submit'])) {
        $addplayerv=$_POST['addplayer'];
        $mysqli->select_db("player");

        $sql="INSERT INTO player (nameofplayer) VALUES ('".$addplayerv."')";
        $mysqli->query($sql);
        $mysqli->close();
    }
?>

select_db() 需要一个参数:您正在使用的数据库的名称。
query() 只需要 sql 查询。
close() 不需要任何参数。

使用此代码:-

$con=mysqli_connect($host,$username,$password,$dbname);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();}
if (isset($_POST['submit'])) 
{
$addplayerv=$_POST['addplayer'];
mysqli_select_db($con,"player");
$sql="INSERT INTO player (nameofplayer) VALUES ('".$addplayerv."')";
mysqli_query($con,$sql);

mysqli_close($con);

这将 100% 工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM