0

特にMVCに準拠しているため、多くのフレームワークの1つを使用するのではなく、独自のphpツールキットを作成したいと考えています。これは私が今探しているものではありません。基本から始めたいのですが、オブジェクト指向を念頭に置いて、単純な php mysql を別のファイル (config.php) に接続し、クエリを別のファイル (index.php) に入れたいと思います。

これを試しましたが、うまくいきません。私は何を間違っていますか?

ルートの config.php

<?php
$dsn = 'mysql:dbname=testdb;host=localhost';
$username = 'root';
$password = 'root';
$dbh = new PDO($dsn, $username, $password);
?>

ルートのindex.php

<html>
<body>
<form action="" method="POST">
    <input type="text" name="search" autofocus />
    <input type="submit" value="search" />
</form>
</body>
</html>

<?php
require_once 'config.php';
$query = "SELECT * FROM table WHERE field = '" . $search . "'";
$results = mysql_query($query);
while($row = mysql_fetch_array($results)){ ?>
<li>
<?php echo $row['field']; ?>
</li>   
<?php } ?>

更新: ご容赦ください。これに関する私の知識は新しいものです。ありがとうございました。

4

3 に答える 3

3

あなたは混合mysql_*してPDOいます... クエリを書き込んで、そのビジネスPDOを取り除きます。mysql_*

于 2013-05-14T19:59:00.630 に答える
1

それ以外の

$query = "SELECT * FROM table WHERE field = '" . $search . "'";
$results = mysql_query($query);

のようなものを使用します

$stmt = $dbh->prepare("SELECT * FROM table WHERE field = :search");
$params = array(':search' => $search);

$res = $stmt->execute($params);

$results = $res->fetchAll();
..
于 2013-05-14T20:03:53.830 に答える
0

config.php ファイルが含まれていることを確認するには、index.php のステートメントを require した後に $dbh 変数を出力します。

require_once 'config.php';
print_r($dbh);

ハンドルから何らかの印刷物を取得する必要があります。

于 2013-05-14T21:25:18.697 に答える