动态我的个人资料页面 php 一直报错
Dynamic my profile page php keeps giving error
我正在尝试使用动态 url 构建我的个人资料页面,但出于某种原因,我的代码无法正常工作。这是我想要的结果,这是我用数据库中的用户名替换 $username 时得到的结果。
这是我不断收到的错误:
图2中有URL与第一张图相同
我使用的代码:
$host = 'localhost';
$db = 'bitr';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
try {
$connect = new PDO("mysql:host=$host;dbname=$db;charset=$charset", $user, $pass);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "DB Connection failed" . $e->getMessage();
}
session_start();
if (empty($_SESSION["userID"])) {
header('Location: login.php');
}
$username = $_GET['user'];
$datapdo2 = "SELECT * FROM users WHERE gebruikersnaam = $username";
$stmtpdo2 = $connect->prepare($datapdo2);
$stmtpdo2->execute();
$rowpdo2 = $stmtpdo2->fetchAll(PDO::FETCH_ASSOC);
foreach ($rowpdo2 as $users) {
echo "<tr>";
echo "<th>" . $users['omschrijving'] . "</th>";
echo "</tr>";
}
export.sql:
DROP DATABASE IF EXISTS bitr2;
CREATE DATABASE bitr2;
USE bitr2;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`gebruikersnaam` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`wachtwoord` varchar(255) DEFAULT NULL,
`omschrijving` text NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO `users` (`gebruikersnaam`, `email`, `wachtwoord`, `omschrijving`) VALUES
('Mauro', 'mauroscheltens@hotmail.com', '12345678', 'Ik ben Mauro en ik ben 17 jaar oud!');
您正在将 $username
插入到查询字符串中,结果是一个不带引号的值。 MySQL 将此裸字符串解释为列名,然后由于您没有这样的列而出错。相反,您应该使用占位符并动态绑定值:
$datapdo2 = "SELECT * FROM users WHERE gebruikersnaam = ?";
$stmtpdo2 = $connect->prepare($datapdo2);
$stmtpdo2->execute(array($username));
我正在尝试使用动态 url 构建我的个人资料页面,但出于某种原因,我的代码无法正常工作。这是我想要的结果,这是我用数据库中的用户名替换 $username 时得到的结果。
这是我不断收到的错误:
图2中有URL与第一张图相同
我使用的代码:
$host = 'localhost';
$db = 'bitr';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
try {
$connect = new PDO("mysql:host=$host;dbname=$db;charset=$charset", $user, $pass);
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "DB Connection failed" . $e->getMessage();
}
session_start();
if (empty($_SESSION["userID"])) {
header('Location: login.php');
}
$username = $_GET['user'];
$datapdo2 = "SELECT * FROM users WHERE gebruikersnaam = $username";
$stmtpdo2 = $connect->prepare($datapdo2);
$stmtpdo2->execute();
$rowpdo2 = $stmtpdo2->fetchAll(PDO::FETCH_ASSOC);
foreach ($rowpdo2 as $users) {
echo "<tr>";
echo "<th>" . $users['omschrijving'] . "</th>";
echo "</tr>";
}
export.sql:
DROP DATABASE IF EXISTS bitr2;
CREATE DATABASE bitr2;
USE bitr2;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`gebruikersnaam` varchar(255) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`wachtwoord` varchar(255) DEFAULT NULL,
`omschrijving` text NOT NULL,
PRIMARY KEY (id)
);
INSERT INTO `users` (`gebruikersnaam`, `email`, `wachtwoord`, `omschrijving`) VALUES
('Mauro', 'mauroscheltens@hotmail.com', '12345678', 'Ik ben Mauro en ik ben 17 jaar oud!');
您正在将 $username
插入到查询字符串中,结果是一个不带引号的值。 MySQL 将此裸字符串解释为列名,然后由于您没有这样的列而出错。相反,您应该使用占位符并动态绑定值:
$datapdo2 = "SELECT * FROM users WHERE gebruikersnaam = ?";
$stmtpdo2 = $connect->prepare($datapdo2);
$stmtpdo2->execute(array($username));