【PHP】PHP MySQL问题 phpinfo() 没有显示MySQL模块

来源:互联网 发布:pmp网络课程 编辑:程序博客网 时间:2024/05/21 08:56

连接数据库的代码:

 $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:\WindowsLoaded 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>

结果:
这里写图片描述

0 0
原创粉丝点击