【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模块了
这里写图片描述


最后把完整例子贴出来:
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>

结果:
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值