php - 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 文件什么也没做。我错过了什么?
解决方案
已排序请遵循以下代码:
<?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>
我做了一些更改以使其正常工作
推荐阅读
- python - Mayavi - 在 imshow() 图形的数据范围之外选择返回 (0,0,0);如何区分?
- apache-spark - 我的火花程序中的大量阶段
- android-studio - 如何使用 Kotlin 查看方法参数?
- sql - 在 Teradata SQL 中按 id 对列求和
- excel - 整数的 ByRef 参数类型不匹配
- python - 你如何在python中将数据框列转换为int
- plsql - 每当购买或出售商品时,在 item_master 表上维护 stock_on_quantity
- vue.js - eslint 如何允许常量条件?
- powerbi - 如何在 Power BI 的 DAX 中将列的值(values() 函数)作为列表输出?
- python - 如何在pyqt中禁用QTableView的默认上下文菜单?