1

以下代码给了我一个致命错误:调用未定义的函数 mysql_connect。我的 php 版本是 5.4.20。php.ini 文件具有 php_mysql.dll 的扩展名,并且 php_mysql.dll 文件是物理存在的。我需要做什么?

<?php
    $connection=mysql_connect('localhost','php','foo')or die('no connection made');
?>
4

3 回答 3

0

我只想说这样的连接已被弃用。请像这样连接,如果你的 mysql 工作,你应该没有错误:

function db()
{
   try
   {
      $db = new PDO('mysql:host=localhost; dbname=test; charset=utf8', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
   }

   catch (Exception $e)
   {
       die('Error : ' . $e->getMessage());
   }
   return $db;
}
于 2013-10-13T07:09:50.357 回答
0

对于您面临的命运错误:-

请从phpinfo()mysql是否正常运行来验证。如果您在 Php.ini 中进行了任何更改,那么您应该重新启动 apache 服务器。

建议 :-

请避免使用mysql_*函数。您可以使用mysqli.

mysql_connect 已弃用,将从 PHP 5.5 中完全删除

如何在 Mysqli 中编写数据库连接:-

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/*
 * This is the "official" OO way to do it,
 * BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
 */
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
        . $mysqli->connect_error);
}

/*
 * Use this instead of $connect_error if you need to ensure
 * compatibility with PHP versions prior to 5.2.9 and 5.3.0.
 */
if (mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
        . mysqli_connect_error());
}

echo 'Success... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

您也可以参考以下链接:-

http://www.pontikis.net/blog/how-to-use-php-improved-mysqli-extension-and-why-you-should http://www.a2hosting.com/kb/developer-corner/mysql /连接到-mysql-使用-php

于 2013-10-13T07:39:03.293 回答
0

取消注释php.iniextension=php_mysql.dll文件中的行并重新启动 Apache。

此外,libmysql.dll文件必须对 Apache 可用,即它必须在 Windows 系统 PATH 或 Apache 工作目录中可用。

在手册中查看有关安装 MySQL 扩展的更多信息。

PS 我建议将 MySQL 扩展视为已弃用,并使用 MySQLi 甚至 PDO 来处理数据库(我更喜欢 PDO)。

于 2016-04-14T13:14:52.287 回答