首页 文章

PHP无法连接到MySQL

提问于
浏览
-1

我想创建一个表单,当用户键入一些输入时,程序将其放入表中的数据库中 . 我正在使用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中创建了数据库,并在一个名为album的表中创建了数据库 . 我希望用户输入艺术家的名字,歌曲和专辑的编号,并自动将其保存在表格中 . 我的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文件只是没有做任何事情 . 我错过了什么?

1 回答

  • -1

    多数民众赞成分类请遵循以下代码:

    <?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>
    

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

相关问题