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

连接数据库的代码:

 $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模块了
【PHP】PHP MySQL问题 phpinfo() 没有显示MySQL模块_第1张图片


最后把完整例子贴出来:
1-search.html

<html>
<head>
  <title>Book-O-Rama Catalog Searchtitle>
head>
<body>
  <h1>Book-O-Rama Catalog Searchh1>
  <form action="results.php" method="post">
    Choose Search Type:<br />
    <select name="searchtype">
      <option value="author">Authoroption>
      <option value="title">Titleoption>
      <option value="isbn">ISBNoption>
    select>
    <br />
    Enter Search Term:<br />
    <input name="searchterm" type="text" size="40">
    <br />
    <input type="submit" name="submit" value="Search">
  form>
body>
html>

浏览器中显示:
【PHP】PHP MySQL问题 phpinfo() 没有显示MySQL模块_第2张图片
输入Th
2-result.php

<html>
<head>
  <title>Book-O-Rama Search Resultstitle>
head>
<body>
<h1>Book-O-Rama Search Results:h1>

  // 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 "

Number of books found: ".$num_results."

"
; for ($i=0; $i <$num_results; $i++) { $row = $result->fetch_assoc(); //取得行 echo "

".($i+1).". Title: "; echo htmlspecialchars(stripslashes($row['title'])); echo "
Author: "; echo stripslashes($row['author']); echo "
ISBN: "
; echo stripslashes($row['isbn']); echo "
Price: "
; echo stripslashes($row['price']); echo "

"
; } $result->free(); $db->close(); ?>
body>
html>

结果:
【PHP】PHP MySQL问题 phpinfo() 没有显示MySQL模块_第3张图片

你可能感兴趣的:(php5)