raqulka raqulka - 5 months ago 9
SQL Question

PDO query not selecting data from one table only

My PDO query is not selecting data from one table only, all other tables work fine.

Select query:

header('Content-type: application/json');
require_once 'class.user.php';
$user_home = new USER();

$user_id = $_SESSION['userSession'];

$profile = $user_home->runQuery("SELECT * FROM user_profiles");
$profile_info = $profile->fetchAll(PDO::FETCH_ASSOC);

echo json_encode(array("profile_info" => $profile_info));

if I change the select to this:
$profile = $user_home->runQuery("SELECT * FROM tbl_users");

It works fine.

DB connection:

class Database

private $host = "localhost";
private $db_name = "hoidja";
private $username = "root";
private $password = "";
public $conn;

public function dbConnection()

$this->conn = null;
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
catch(PDOException $exception)
echo "Connection error: " . $exception->getMessage();

return $this->conn;

This is the table I am trying to query:

enter image description here

Thats the only table where it does not select any data- (there are 3 rows).
What could be the cause?


Forget to write where clause .

Your query would be

SELECT * FROM user_profiles WHERE user_id =:user_id

Otherwise no use for executing this



As per below messages the problem is occur due to special such as รครถ etc.

Use array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) in your connection string to avoid this