我想创建自己的php工具包,而不是使用其中的一个框架,特别是因为它们遵循MVC,这不是我现在正在寻找的。我想从基础开始,并记住OO,我想在一个单独的文件(config.php)中连接一个简单的php mysql,在另一个文件中查询(index.php)
我尝试了这个,但它不起作用。我做错了什么?
root中的config.php
<?php
$dsn = 'mysql:dbname=testdb;host=localhost';
$username = 'root';
$password = 'root';
$dbh = new PDO($dsn, $username, $password);
?>
root中的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 } ?>
更新:请耐心等待,我对此的了解是新的。谢谢。
答案 0 :(得分:3)
您正在混合mysql_*
和PDO
...在PDO
中撰写您的问题并摆脱mysql_*
业务。
答案 1 :(得分: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();
..
答案 2 :(得分:0)
要确保包含config.php文件,只需在index.php中需要语句后打印出$ dbh变量
require_once 'config.php';
print_r($dbh);
你应该从手柄上取出某种打印件。