我正在使用此代码进行mysql连接
$con = mysql_connect("localhost", "username" , "password");
if (!$con)
{
die('Could not connect: ');
}
else
{ echo "connection failed....";}
mysql_select_db("ManagersDatabase", $con);
在/var/lib/mysql/ManagersDatabase
中可以找到 mysql数据库。
我的php页面可以在/var/www/html/
中找到。
它什么都不打印。我的代码有什么问题?
答案 0 :(得分:3)
这是您应该使用PDO进行连接的方式:and utilizing prepared query's when querying.
<?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());
}
?>
或者mysqli and utilizing prepared query's when querying。
<?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);
?>
编辑(回复评论):
如果添加print_r($con);
,您应该看到mysqli连接对象,如:
/*
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
)
*/
其他方法已过时,很快就会(谢天谢地)弃用。
答案 1 :(得分:0)
你应该在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);
}
答案 2 :(得分:0)
引用你的问题:
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);
所以它实际上会打印出来。
此外,您应该启用display_errors以获取屏幕上的错误或使用error_log,这样您就可以将错误记录到某处。
另外,请检查您是否已启用并正在使用mysql扩展,并且mysql_connect()函数可用。的phpinfo();将告诉你有哪些扩展,function_exists()可以告诉你有可用的功能。
所以,要做的事情:
修改即可。因为缺少的mysql扩展似乎是问题('调用未定义的函数mysql_connect'):
首先,您需要访问PHP配置。如果这是您的本地安装或服务器,那么您应该这样做 - 如果您使用其他人托管,那么他们应该更改这些内容。
给出一些假设,例如
这是你应该做的:
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_pdo_mysql.dll
答案 3 :(得分:-1)
这是项目 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');
?>