我目前正在构建一个超基本的名字和姓氏数据库应用程序来练习我的 PHP 和 SQLite 技能,我遇到了一些我无法弄清楚的问题,我已经准备好把我的头发拉过来。
我会尽力解释这一点,有点新手。
我正在使用 Symfony HTTP-Foundation 和 polyfill-mbstring 框架,该应用程序运行时没有错误,而且正如预期的那样,除了我添加名字和姓氏的输入字段问题似乎不是写入数据库。当我查看数据库中的数据时,每一行都显示为 NULL。
这是我为向数据库添加新客户端而创建的函数:
function addNewClient($firstName, $lastName) {
global $db;
try {
$query = 'INSERT INTO client_summary (first_name, last_name) VALUES (:first_name, :last_name)';
$stmt = $db->prepare($query);
$stmt->bindParam(':first_name', $firstName);
$stmt->bindParam(':last_name', $lastName);
return $stmt->execute();
} catch(\Exception $e) {
throw $e;
}
}
这是我用于输入字段的代码
<form method="post" action="procedures/add-client.php" class="mt-5">
<div class="form-group">
<label for="firstName">First Name</label>
<input type="text" class="form-control" id="firstName" name="firstName" value="<?php if(isset($firstName)) echo $firstName; ?>" placeholder="First Name" required />
</div>
<div class="form-group">
<label for="lastName">Last Name</label>
<input type="text" class="form-control" id="lastName" name="lastName" value="<?php if(isset($lastName)) echo $lastName; ?>" placeholder="Last Name" />
</div>
<button type="submit" class="btn btn-block btn-outline-primary">
Insert Into Database
</button>
</form>
然后是添加新客户端的过程
<?php
require_once __DIR__ . '/../inc/bootstrap.php';
$firstName = request()->get('first_name');
$lastName = request()->get('last_name');
try {
$newClient = addNewClient($firstName, $lastName);
redirect('/index.php');
$response->send();
exit;
} catch(\Exception $e) {
throw $e;
}
bootstrap.php 用于 functions.php 和 connection.php 文件。
这是我使用的数据库浏览器中的结果。
当然这是我所缺少的,只需要一双有经验的眼睛。
提前致谢
斯图:)
最佳答案
在您获取 first_name
和 last_name
的 PHP 代码中,您遇到了错误。您从 request()
中提取的这两个名称应该与 HTML 上输入标签中的字段 name
相匹配。所以它们应该更改为 request()->get('firstName')
和 request()->get('lastName')
。
关于php - 带有 PHP 和 SQLite 的数据库应用程序在数据库中返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52435780/