Я использую PHP PDO для подключения к базе данных MySQL и возврата набора результатов, но я, кажется, получаю дубликат вывода, хотя в моей базе данных всего 2 записи.PHP PDO MySQL duplicate output
MYSQL:
mysql> SELECT * FROM nouns;
+-----+---------------+---------+
| PID | german | english |
+-----+---------------+---------+
| 1 | die Männer | men |
| 2 | die Frauen | women |
+-----+---------------+---------+
2 rows in set (0.00 sec)
mysql>
РНР Фрагмент 1:
$database = new MySQLConnect();
$database->query("SELECT german, english FROM nouns;");
while ($row = $database->row()->fetch()) {
foreach ($row as $value) {
$data .= $value;
}
РНР Фрагмент 2:
interface IMySQLSettings
{
const HOSTNAME = "hostname";
const DATABASE = "database";
const USERNAME = "username";
const PASSWORD = "password";
function __construct();
function query($query);
function row();
}
class MySQLConnect implements IMySQLSettings
{
private $hostname = IMySQLSettings::HOSTNAME;
private $database = IMySQLSettings::DATABASE;
private $username = IMySQLSettings::USERNAME;
private $password = IMySQLSettings::PASSWORD;
private $connect;
private $query;
function __construct()
{
$this->connect = new PDO("mysql:host=$this->hostname;dbname=$this->database", $this->username, $this->password);
$this->connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
function query($query)
{
try {
$this->query = $this->connect->prepare("$query");
$this->query->execute();
} catch (PDOException $e) {
echo $e->getMessage();
}
}
function row()
{
return $this->query;
}
}
Выход:
die Männerdie Männermenmendie Frauendie Frauenwomenwomen
Где код, который генерирует ваш выход? – Anigel
опубликованный код имеет синтаксическую ошибку. также нет отладочных усилий. и, очевидно: '$ database-> row() -> fetch (PDO :: FETCH_NUM)' – hakre
Исключительно ортодоксальная структура классов. И код бесполезен в той же степени ... В чем смысл иметь отличный метод row()? –