Estoy tratando de crear una página de mi perfil con direcciones URL dinámicas, pero por alguna razón, mi código no funciona. Este es el resultado que quiero tener, esto es lo que obtengo cuando reemplazo $nombre de usuario con un nombre de usuario de la base de datos.
Y aquí está el error que sigo recibiendo: 
La URL en la imagen 2 es la misma que en la primera imagen.
El código que estoy usando:
$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>"; }exportar.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!');Está interpolando $username en la cadena de consulta, lo que da como resultado un valor sin comillas. MySQL interpreta esta cadena simple como un nombre de columna y luego genera un error ya que no tiene esa columna. En su lugar, debe usar un marcador de posición y vincular el valor dinámicamente:
$datapdo2 = "SELECT * FROM users WHERE gebruikersnaam = ?"; $stmtpdo2 = $connect->prepare($datapdo2); $stmtpdo2->execute(array($username));