OOP选择数据mysql

时间:2014-06-28 15:19:06

标签: php mysql oop pdo mysqli

我是OOP的新手,只是尝试从mysql迁移,但我在迁移时遇到了一些问题。

$konek = new PDO('mysql:host=localhost;dbname=mydatabase', root, root);$hasil = $konek->query("SELECT * FROM `tabel`");
while ($data = $hasil->fetch_object()) {
echo '<td>'.$data->something.'</td>';}

它不起作用或显示错误,但当我用mysqli替换第一行时,它可以正常工作:

konek = new mysqli('localhost','root','root','mydatabase');

任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:2)

我假设在你的代码中,它被编码为字符串:(或root定义了吗?)

$konek = new PDO('mysql:host=localhost;dbname=mydatabase', root, root);

显然,在您的示例中,如果是类型,请将其更改为:

$konek = new PDO('mysql:host=localhost;dbname=mydatabase', 'root', 'root', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));

将您的代码重构为:

error_reporting(E_ALL);
ini_set("display_errors", 1);

try {
    $konek = new PDO('mysql:host=localhost;dbname=mydatabase', 'root', 'root', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

$hasil = $konek->query("SELECT * FROM `tabel`");
echo '<table>';
while ($row = $hasil->fetch(PDO::FETCH_OBJ)) {
    echo '<tr>';
        echo '<td>' . $row->column_name . '</td>';
    echo '</tr>';
}
echo '</table>';

答案 1 :(得分:0)

1)用户名和密码应引用字符串

2)使用try catch

3)使用准备并执行查询

4)然后获取

尝试这样:

try {
    $konek = new PDO('mysql:host=localhost;dbname=mydatabase', 'root', 'root');
    $konek->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    die( 'ERROR: ' . $e->getMessage());
}

try {
    $hasil = $konek->prepare("SELECT * FROM `tabel`");
    $hasil->execute();
    while ($data = $hasil->fetch(PDO::FETCH_OBJ)) {
    echo '<td>'.$data->something.'</td>';
    }

}
catch(PDOException $e) {
        die( 'ERROR: ' . $e->getMessage());
    }

答案 2 :(得分:-1)

请提供与之相呼应的错误消息。

我最好的猜测:

http://www.php.net/manual/en/pdostatement.fetchall.php

尝试替换

while ($data = $hasil->fetch_object()) {
echo '<td>'.$data->something.'</td>';}

while ($data = $hasil->fetchAll()) {
echo '<td>'.$data->something.'</td>';}