首页 > 解决方案 > PHP 没有连接到 MySQL

问题描述

我想制作一个表单,当用户输入一些输入时,程序会将其放入表中的数据库中。我正在使用 PDO 连接到数据库,但是当我输入某些内容时,它什么也没做。你能帮助我吗?我在代码中做错了什么?我有一个单独的 PDO 代码文件,我将它包含在 php 文件中。PDO 代码:

<?php
$pdo = new PDO('mysql:host=localhost;port=3306;dbname=music', 'kat', 'msc');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>

我在 MySQL 中创建了数据库,并在里面创建了一个名为专辑的表。我希望用户输入艺术家姓名、歌曲和专辑编号,并自动将其保存在表格中。我在 PHP 中的代码:

<?php
require_once "pdo.php";  
$sql= "INSERT INTO album(name, song, number) VALUES ( :nm, :sn, :nb)";
echo("<pre>\n".$stmt."\n</pre>\n");
$stmt = $pdo->prepare ($sql);
$stmt->execute(array(
':nm' => $_POST['name'],
':sn' => $_POST['song'],
':nb' => $_POST['number']));
}
$stmt = $pdo->query("SELECT name, song, number FROM album");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

以及表单的代码:

<form method="post">
<p>Name:
<input type="text" name="name" size="60"/></p>
<p>Song:
<input type="text" name="song"/></p>
<p>Number:
<input type="text" name="number"/></p>
<input type="submit" value="Add">   
</form>

当按下“添加”按钮时,我将对非空、整数等数据进行一些输入验证,但我还没有完成,因为我什至无法让简单的部分工作。我正在使用 xampp 和 MySQL 分开工作,我的 php 文件什么也没做。我错过了什么?

标签: phpmysqlpdodatabase-connection

解决方案


已排序请遵循以下代码:

<?php
error_reporting(0);
if( isset($_POST['postdata'])) { 

    $servername = "localhost";
    $username = "kat";
    $password = "msc";
    try {
    $conn = new PDO("mysql:host=$servername;dbname=music", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
    $sql= "INSERT INTO album(name, song, number) VALUES ( :nm, :sn, :nb)";
    echo("<pre>\n".$stmt."\n</pre>\n");
    $stmt = $conn->prepare ($sql);
    $stmt->execute(array(
    ':nm' => $_POST['name'],
    ':sn' => $_POST['song'],
    ':nb' => $_POST['number']));
    
    $stmt = $conn->query("SELECT name, song, number FROM album");
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
    print_r($rows);


    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
}
?>



<form method="post">
<p>Name:
<input type="text" name="name" size="60"/></p>
<p>Song:
<input type="text" name="song"/></p>
<p>Number:
<input type="text" name="number"/></p>
<input type="submit" value="Add" name="postdata">   
</form>

我做了一些更改以使其正常工作

在此处输入图像描述

在此处输入图像描述


推荐阅读