相关疑难解决方法(0)

为什么我不应该在PHP中使用mysql_*函数?

为什么一个人不应该使用mysql_*功能的技术原因是什么?(例如mysql_query(),mysql_connect()mysql_real_escape_string())?

即使他们在我的网站上工作,为什么还要使用其他东西?

如果他们不在我的网站上工作,为什么我会收到错误

警告:mysql_connect():没有这样的文件或目录

php mysql database

2432
推荐指数
12
解决办法
21万
查看次数

PHP交互式mysql()不起作用,但mysqli()正在工作; 为什么?

概要:转储/恢复后,无法再从Web应用程序连接到MariaDB.这似乎是在MariaDB中处理PHP mysql()和mysqli()接口的方式之间的一些区别.

MariaDB 10.1.8在MacOS X 10.6.8(Snow Leopard)上,PHP 5.3.8和Apache 2.2.24.

由于磁盘驱动器出现故障,我遇到了"数据库腐烂"的情况,一些InnoDB表变得无法访问,最后服务器崩溃了.我按照服务器错误日志条目指向的网页中的说明进行操作,并且能够让它运行,只读,使用"mysqld --innodb_force_recovery = 2".(1级仍然崩溃,我不敢尝试3级.)

在"force_recovery"模式下,我对所有数据库(11 GB)进行了逻辑(SQL代码)转储,重命名了错误的数据目录,并运行"scripts/mysql_install_db.sh"来初始化空数据目录.然后我加载了逻辑备份,只有很小的问题.

现在它变得令人费解.我可以使用各种工具访问数据库,包括mysql CLI,phpMyAdmin,Sequel Pro,Valentia等.

但我无法通过我托管的任何网站进入数据库,包括几个版本的MediaWiki和几个本土图像库的实例.它在mysql_connect()中失败,登录凭据通过mysql CLI工作.但phpMyAdmin使用相同的登录凭据工作!

所以我浏览了phpMyAdmirn代码,发现它使用的是mysqli(),而破碎的网页应用程序似乎正在使用mysql().phpMyAdmin有一个配置变量来控制它; 我把它从"mysqli"改为"mysql",它就破了.将其改回"mysqli",它再次起作用.

我没有改变任何PHP代码.我没有改变任何apache设置.我没有改变/etc/my.cnf.我没有改变/etc/php.ini.我没有更改任何登录凭据.唯一改变的是转储,重新初始化和恢复所有数据库.

我想也许一些神奇的MySQL系统变量设置没有通过转储/恢复周期.

我做了phpinfo(),它表明mysqli()正在使用正确的套接字:/tmp/mysql.sock,但是mysql()正在使用/var/mysql/mysql.sock,这在/etc/php.ini中没有启用./ var/mysql中有一个指向/tmp/mysql.sock的符号链接,这让我觉得我之前已经走过了这条道路......我试着把它变成一个硬链接; 仍然没有快乐.

我运行了"php -info",实际上,编译后的套接字是/var/mysql/mysql.sock.所以我在/etc/my.cnf中放了"socket =/var/mysql/mysql.sock",删除了/ var/mysql中的符号链接,并重新启动了mysql和apache.套接字在/ var/mysql中.现在,使用mysqli()的web应用程序不再有效,但使用mysql()的应用程序也不行!

所以我很困惑.特别是因为在我进行了mysql数据目录的转储/初始化/恢复之前它一切正常.

提前感谢您提供的任何建议!

(是的,我知道mysql()已被弃用,但我确实预先设置了"PHP 5.3.8".感谢所有没有回答问题的人指出不应该使用弃用代码进行新开发.现在,如果你这么聪明,我们试着回答这个问题吧!我有遗留的代码来维护!)

php mysql mysqli mariadb

6
推荐指数
1
解决办法
2360
查看次数

连接到外部 MySQL 服务器时出现“无法连接到 MySQL 服务器”错误

我们最近将 PHP 更新到最新版本,我们有一个正在运行的 PHP 脚本,但现在已损坏。

目前,它甚至根本不允许我连接到 SQL 数据库,并返回此错误:

无法连接到 MySQL:无法连接到 mysql01.fau.edu 上的 MySQL 服务器 (13) 2003

数据库本身位于 Linux 环境中,目前我什至无法获得如下运行的简单脚本:

$host = 'mysql01.fau.edu';
$username = '*****';
$password = '*****';
$database = '******';
$connect = mysqli_connect($host,$username,$password,$database);

if (mysqli_connect_errno()) {
    echo 'Failed to connect to MySQL: ' . mysqli_connect_error() . mysqli_connect_errno();
} else {
    echo 'Connected to MySQL! </ br>';
}
Run Code Online (Sandbox Code Playgroud)

php mysqli database-connection

5
推荐指数
1
解决办法
7550
查看次数

我正在使用xampp服务器并尝试运行localhost,但在connect.php中不断收到错误

嘿,我正在使用xampp并尝试运行localhost,但在connect.php中不断收到错误...错误如下

致命错误:未被捕获的错误:调用C:\ xampp \ htdocs \ admin panel \ connect.php:9中未定义的函数mysql_connect()堆栈跟踪:#0 C:\ xampp \ htdocs \ admin panel \ index.php(16) :include()#1 {main}在第9行的C:\ xampp \ htdocs \ admin panel \ connect.php中抛出

我的connect.php代码如下

<?php
$servername = "localhost";
$username = "root";
$password = "";
mysqli_connect($servername,$username,$password) or die('cannot connect to  
the server'); 
?>     
Run Code Online (Sandbox Code Playgroud)

这个你能帮我吗。

php

5
推荐指数
1
解决办法
106
查看次数

PHP:未定义的函数mysql_connect()

我刚下载了新的xampp并尝试运行我的旧项目,我收到了这个错误

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in F:\xampp\htdocs\try\index.php:17 Stack trace: #0 {main} thrown in F:\xampp\htdocs\try\index.php on line 17
Run Code Online (Sandbox Code Playgroud)

这是否意味着mysql_connect我使用的新xampp尚未支持?

php mysql

3
推荐指数
1
解决办法
9万
查看次数

标签 统计

php ×5

mysql ×3

mysqli ×2

database ×1

database-connection ×1

mariadb ×1