PHP获取数组mysql


PHP fetch array mysql

我有一段代码:

if (isset($_POST['username']) && isset($_POST['email'])) {
$query = $pdo->prepare('INSERT INTO users (name, email, joined) VALUES (?, ?, ?)') or die ('Error.');
$query->bindValue(1, $_POST['username']);
$query->bindValue(2, $_POST['email']);
$query->bindValue(3, time());
$query->execute();
$sql = mysql_query('SELECT * FROM users;');
while ($row = mysql_fetch_array($sql)) {
    echo ('<div style="font-weight: bold;">' .$row['name']. '</div>');
    echo ($row['email']);
    echo ('<br>');
    echo ('Posted: ');
    echo date('F j, Y, g:i a', strtotime($row['joined']));
}
}

它指责这个错误:

mysql_fetch_array()要求参数1为resource,在第21行的C:''WebServer''htdocs''newsSite''register.php中给定布尔值

在另一个文件(下面)上,它运行良好,但我看不出它们之间的区别:

<body>
<?php
$query = mysql_query('SELECT * FROM posts;');
while ($row = mysql_fetch_array($query)) {
    echo ('<div style="font-weight: bold;">' .$row['title']. '</div>');
    echo ($row['post']);
    echo ('<br>');
    echo ('Posted: ');
    echo date('F j, Y, g:i a', strtotime($row['date']));
}
?>
</body>

试着这样做,这是我很久以前使用过的代码片段,

    // PDO
$pdo = new PDO('mysql:dbname=test;host=127.0.0.1', 'example', 'example');
print '<h3>PDO: simple select</h3>';
foreach($pdo->query( 'SELECT * FROM users;' ) as $row)
{
    //Fetching data
}

问题是(可能)由于查询字符串或逻辑中的一些错误,您的查询返回false(因此为"boolean")。请尝试"SELECT 1"而不是查询字符串,如果它运行良好,您就会确信差异(原因)一定在查询中。

在这行后面放一个函数,

$sql = mysql_query('SELECT * FROM users;');
echo mysql_error();

查询中出现错误。