Php mysql连接失败
我将此代码用于mysql连接Php mysql连接失败,php,sql,linux,Php,Sql,Linux,我将此代码用于mysql连接 $con = mysql_connect("localhost", "username" , "password"); if (!$con) { die('Could not connect: '); } else { echo "connection failed....";} mysql_select_db("ManagersDatabase", $con); mysql数据库可在/var
$con = mysql_connect("localhost", "username" , "password");
if (!$con)
{
die('Could not connect: ');
}
else
{ echo "connection failed....";}
mysql_select_db("ManagersDatabase", $con);
mysql数据库可在/var/lib/mysql/ManagersDatabase
中找到。
我的php页面可以在/var/www/html/
中找到。
它不打印任何东西。我的代码有什么问题?您应该连接到else块中的数据库
$con = mysql_connect("localhost", "username" , "password");
if (!$con)
{
die('Could not connect: ');
}
else // if connection is made, then select the DB
{
mysql_select_db("ManagersDatabase", $con);
}
引述你的问题:
if (!$con)
{
die('Could not connect: ');
}
else
{ echo "connection failed....";}
。。。你注意到这没有多大意义吗?它的意思是如果(某物){//无法连接}或者{//连接失败},那么您的代码认为它总是失败
你应该做的是
$con = mysql_connect("localhost", "username" , "password");
if ($con === false)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("ManagersDatabase", $con);
所以它可以打印出任何东西
此外,您应该启用显示错误以在屏幕上获取错误,或者使用错误日志,以便将错误记录到某个地方
此外,请检查您是否已启用并正在使用mysql扩展,以及mysql_connect()函数是否可用。phpinfo();将告诉您有哪些扩展,函数_exists()可以告诉您该函数可用
因此,要做的事情是:
编辑。由于缺少mysql扩展似乎是问题所在(“调用未定义的函数mysql_connect”): 首先,您需要访问PHP配置。如果这是你的本地安装或服务器,你应该有-如果你正在使用别人的主机,他们应该改变这些事情的人 给出一些假设,例如
- 您正在使用本地apache服务器
- 您使用的不是XAMPP或任何其他*AMP产品,而是普通安装
- 找到您的php.ini配置文件,或者根据php文件夹中的示例文件创建一个配置文件(如果没有)
- 找到下面的行(.dll用于windows,.so用于linux,不知道其他行)
- 从要使用的注释中去掉注释(第一个“;”)。您在示例中使用的是第一个,其他的用于使用其他帖子中描述的其他抽象,因此如果您想使用现有的代码,可以取消对第一个的注释
- 如果您想立即看到任何配置问题,也可以启用“显示\u启动\u错误”
- 检查“extension_dir”设置是否正确,是否指向具有上述.dll扩展名的文件夹
- 重新启动apache服务器
其他方法已经过时,很快就会(谢天谢地)被弃用 这是项目的模板文件connect.php。你可以用它
<?php
// Connecting, selecting database
$link = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
//echo 'Connected successfully';
mysql_select_db('procost') or die('Could not select database');
?>
您不应该在问题中发布您的实际用户名和密码。这不是我的实际用户名和密码。。。。!!请不要对新代码使用mysql.*
函数。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果你想学的话,原来的问题看起来是可以的,所以我把它们删掉了。如果你在发布之前已经更改了它们,一切都很好:)它不会打印任何内容还是会打印“连接失败”?我尝试了mysqli方式…但它没有显示任何内容…这意味着连接已经完成!!!是的,如果没有输出,这意味着它错过了die('error')
,并通过了/connected。从mysql切换到mysqli或者PDO只是使用了另一层抽象。虽然我完全同意应该进行切换,但它并没有真正回答这里提出的问题。@Lawrence Cherone,我在哪里可以添加print\u r?@Lawrence Cherone好吧,首先,使用mysql\u本身并不是错误的。在相当长的一段时间内,这是一种推荐的方法,并且不是所有人都可以升级他们的PHP堆栈。这也是推测,但如果用户看到的是一个空页面,切换抽象层也无济于事,因此这是“教错了东西”无论如何-我猜需要启用扩展并显示错误…它给出了:调用未定义的函数mysql\u connect…如何修复它?@kinana.yasin在回答中添加了一些详细信息。你做了什么:检查“extension\u dir”设置是否正确,并指向拥有上述.dll扩展名的文件夹!!!我只是启用了mysql.so,在同一个文件中有一个设置“extension_dir”,它应该指向mysql.so文件所在的文件夹。我搜索了mysql.so,所以我可以找到它…顺便说一下,我使用了php5!!!在哪里可以找到它?
<?php
try{
$con = new PDO('mysql:host=127.0.0.1;dbname=your_database','root','password');
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
}catch (Exception $e){
die('Cannot connect to database. Details:'.$e->getMessage());
}
?>
<?php
$con = new mysqli("127.0.0.1", "user", "password", "your_database");
if ($con->connect_errno) {
die("Failed to connect to MySQL: (".$con->connect_errno.") ".$con->connect_error);
}
print_r($con);
?>
/*
mysqli Object
(
[affected_rows] => 0
[client_info] => mysqlnd 5.0.10 - 20111026 - $Id: b0b3b15c693b7f6aeb3aa66b646fee339f175e39 $
[client_version] => 50010
[connect_errno] => 0
[connect_error] =>
[errno] => 0
[error] =>
[error_list] => Array
(
)
[field_count] => 0
[host_info] => 127.0.0.1 via TCP/IP
[info] =>
[insert_id] => 0
[server_info] => 5.5.25a
[server_version] => 50525
[stat] => Uptime: 10 Threads: 1 Questions: 1 Slow queries: 0 Opens: 33 Flush tables: 1 Open tables: 26 Queries per second avg: 0.100
[sqlstate] => 00000
[protocol_version] => 10
[thread_id] => 1
[warning_count] => 0
)
*/
<?php
// Connecting, selecting database
$link = mysql_connect('localhost', 'root', '') or die('Could not connect: ' . mysql_error());
//echo 'Connected successfully';
mysql_select_db('procost') or die('Could not select database');
?>