0

私はすでに検索しましたが、コードの役に立ったものは何も見つかりませんでした:

function getData($con, $table) {
    $stmt = $con->query('SELECT * FROM ' . $table);
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

function getDataByUsername($con, $table, $username) {
    $stmt = $con->query('SELECT * FROM ' . $table . ' WHERE `username` = "' .     $username . '";');
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

getData 関数は問題なく動作しますが、getDataByUsername を使用すると、次のエラーが発生します。

Fatal error: Call to a member function fetchAll() on a non-object in     /home/moe/www/status/inc/functions.php on line 12

12行目はこれです:

return $stmt->fetchAll(PDO::FETCH_ASSOC);

助けてくれてありがとう、モロ

4

3 に答える 3

1

、変数をバインドしてみませんか?

function getDataByUsername($con, $table, $username) {
    $stmt = $con->prepare('SELECT * FROM ' . $table . ' WHERE `username` = ?');
    $stmt->execute( array($username) );
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
于 2013-03-29T20:25:54.663 に答える
0

変化する

$con->query('SELECT * FROM ' . $table . ' WHERE `username` = "' .     $username . '";');

$con->query("SELECT * FROM `" . $table . "` WHERE `username` = `" .     $username . `";");

余分な文字は「ティック」と呼ばれ、TAB キーの上にあります。

より良い:

$con->query("SELECT * FROM {$table} WHERE `username` = {$username};");

最後にテストしませんでしたが、この方法で変数をインラインで使用できます。

もちろん、@Jon の発言に注意してください。

于 2013-03-29T20:18:56.150 に答える
-2

問題は次のとおりです。削除してください、それが解決策です

お気に入り :

$stmt = $con->query('SELECT * FROM ' . $table . ' WHERE `username` = "' .     $username . '"');
于 2013-03-29T20:07:39.883 に答える