连接数据库的代码:
$db = new mysqli('localhost', 'root', '123', 'books');
// $db = mysql_connect('localhost', 'root', '123', 'books');
// $db = mysqli_connect("localhost", "root", "123","books");
//mysql_connect本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除
发现出现错误:
Fatal error: Call to undefined function mysqli_connect()
或
Fatal error: mysqli not found(记不太清楚了)
在网上查找解决方案:
1-在php.ini中 Windows Extensions.”下添加
extension=php_mysqli.dll
On windows:
extension_dir = "F:\phpEnv\php\ext"
2-将php/ext下的php_mysqli.dll拷贝到window/system32
重新启动Apache
仍然不行
许多解决方案都说太麻烦,建议利用集成开发环境(phpStudy),但是我觉得不应该遇见一个问题就放弃,虽然我学习PHP才一个周的时间,于是决定还是自己摸索吧。
阅读一些过时的PHP教程时,会提到libmysql.dll文件,甚或提到要将该文件和php5ts.dll复制到Windows的system32目录下,于是,新手在此时却发现下载的PHP5.3包里没有libmysql.dll文件,于是很困惑。实际上,PHP是有意去除libmysql.dll文件的,因为它提供了更好的替代方式,就是内嵌的php模块“mysqlnd”,也正是由于“mysqlnd”是内嵌的,所以不需要多余的类似libmysql.dll的文件。同时,这对于mysql、mysqli、PDO的使用也是没有影响的,因为这只是对mysql底层交互的方式的更新,php程序员不用管它,原来的还是一样用。
http://pdo2010.blog.163.com/blog/static/192070092201262274811764/
总结:PHP5.3版本开始,使用mysqlnd库,不再使用libmysql.dll用来访问MySQL数据库,大大提升了PHP的数据库访问性能。且默认支持mysql,无需像libmysql.dll要手动复制到windows/system32目录下。
再观察phpinfo()里的东西
phpin配置文件没有找到
修改httpd.conf
PHPIniDir "f:\phpEnv\php\php.ini"
这时候刷新localhost网页,重新看看phpinfo()里面的东西,发现:
Configuration File (php.ini) Path C:\Windows
Loaded Configuration File F:\phpEnv\php\php.ini
这个时候就正确了,也有mysql模块了
最后把完整例子贴出来:
1-search.html
<html>
<head>
<title>Book-O-Rama Catalog Search</title>
</head>
<body>
<h1>Book-O-Rama Catalog Search</h1>
<form action="results.php" method="post">
Choose Search Type:<br />
<select name="searchtype">
<option value="author">Author</option>
<option value="title">Title</option>
<option value="isbn">ISBN</option>
</select>
<br />
Enter Search Term:<br />
<input name="searchterm" type="text" size="40">
<br />
<input type="submit" name="submit" value="Search">
</form>
</body>
</html>
浏览器中显示:
输入Th
2-result.php
<html>
<head>
<title>Book-O-Rama Search Results</title>
</head>
<body>
<h1>Book-O-Rama Search Results:</h1>
<?php
// create short variable names
$searchtype=$_POST['searchtype'];
$searchterm=trim($_POST['searchterm']);
if (!$searchtype || !$searchterm) {
echo 'You have not entered search details. Please go back and try again.';
exit;
}
if (!get_magic_quotes_gpc()){ //是否自动完成了引号
$searchtype = addslashes($searchtype);
$searchterm = addslashes($searchterm);
}
$db = new mysqli('localhost', 'root', '123', 'books');
// $db = mysql_connect('localhost', 'root', '123', 'books');
// $db = mysqli_connect("localhost", "root", "123","books"); //mysql_connect本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除
if(!$db){
die('Could not connect'.mysql_error());
}
if (mysqli_connect_errno()) {
echo 'Error: Could not connect to database. Please try again later.';
exit;
}
$query = "select * from books where ".$searchtype." like '%".$searchterm."%'";
$result = $db->query($query); //执行查询
$num_results = $result->num_rows;
echo "<p>Number of books found: ".$num_results."</p>";
for ($i=0; $i <$num_results; $i++) {
$row = $result->fetch_assoc(); //取得行
echo "<p><strong>".($i+1).". Title: ";
echo htmlspecialchars(stripslashes($row['title']));
echo "</strong><br />Author: ";
echo stripslashes($row['author']);
echo "<br />ISBN: ";
echo stripslashes($row['isbn']);
echo "<br />Price: ";
echo stripslashes($row['price']);
echo "</p>";
}
$result->free();
$db->close();
?>
</body>
</html>
结果: