您好我正在使用php开发我的第一个数据库连接。但由于某种原因,数据没有插入表中。我有一个带名字和姓氏的页面。我创建了一个名为用户信息的表。这里是整个代码,除了(错误和结果页面都很好)。
的index.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="wrapper">
<div id="main">
<div id="inbox">
<form action="function.php" method="post">
<span id="first">First Name: </span>
<input type="text" name="fname" id="textField">
<span id="second">Last name: </span>
<input type="text" name="lname" id="textField"><br><br>
<input type="submit" value="Submit" id="submitBtn">
</form>
</div>
</div>
</div>
</body>
</html>
database.php中
<?php
$dsn = 'mysql:host=localhost;dbname=practice';
$username = 'user';
$password = 'user123';
try {
$db = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
$error_message = $e->getMessage();
include('database_error.php');
exit();
}
?>
function.php
<?php
require_once('database.php');
$firstName = filter_input(INPUT_POST, 'fname');
$lastName = filter_input(INPUT_POST, 'lname');
$firstName_q = $db->quote($firstName);
$lastName_q = $db->quote($lastName);
$query = 'INSERT INTO PRACTICE.USERINFO
(USERID, FIRSTNAME, LASTNAME)
VALUES(DEFAULT, $firstName_q, $lastName_q)';
$insert_count = $db->exec($query);
include('result.php');
?>
我不确定我在做错的地方。它似乎成功连接。并显示结果页面(这只是一个说成功的文本)。但桌子是空的。我看到一些类似的帖子,但它们对我来说太长或太复杂了。帮助将受到高度赞赏。提前谢谢!
答案 0 :(得分:2)
include
替换包含。 php中不存在Inclu。PRACTICE_USERINFO
。就个人而言,我总是喜欢小写的表名。$error_message
var,看看错误可能是什么。$
开头的变量不会被&#39;读取&#39;。答案 1 :(得分:0)
您的代码中存在多个问题,其中大部分都是@HarryK在回答中提到的,我想特别关注“为什么插入不被触发?”的具体问题 您的查询:
$query = 'INSERT INTO PRACTICE.USERINFO
(USERID, FIRSTNAME, LASTNAME)
VALUES(DEFAULT, $firstName_q, $lastName_q);
替换为双引号,如下所示:
$query = "INSERT INTO PRACTICE.USERINFO
(USERID, FIRSTNAME, LASTNAME)
VALUES(DEFAULT, $firstName_q, $lastName_q)";
好参考:
When to use single quotes, double quotes, and backticks in MySQL