2008-12-24 113 views
1

我是PHP新手,已经安装在Linux上启动(也是一个新手)。 无论如何,PHP正在工作...PHP忽略mysql_connect请求

<? 
$myVar = "test"; 
echo($myVar); 
?> 

...工作得很好。

但是......

<? 

$dbhost = "localhost"; 
$dbuser = "myuser"; 
$dbpass = "mypass"; 
$dbname = "mydb"; 

echo($dbhost . "-" . $dbuser . "-" . $dbpass . "-" . $dbname); 

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die("Unable to connect to MySQL"); 
print $conn; 

mysql_close($conn); 

phpInfo(); 
?> 

...什么都不做。没有错误,没有。它就好像代码甚至不在那里。

任何帮助?

回答

4

尝试做与数据库服务器进行通信如下:

  1. 首先确保display_errors已在您的php配置文件中打开。还要设置error_reporting的级别以显示所有错误,包括strict(error_reporting = E_ALL | E_STRICT)。进行更改后,重新启动Web服务器。
  2. 运行phpinfo(),并检查mysql扩展是否已安装并正常工作。如果不确定你在php配置文件中取消注释(再一次,记住在每次更改配置文件后重新启动apache)。
  3. 在这一点上MySQL应该被加载和工作,并且你应该能够从错误中知道(如果它仍然存在)什么是问题。
  4. 也尝试dumping连接结果($ conn)的内容以查看它包含的内容。
  5. 一般来说,我建议使用long php标签(<?php而不是<?),因为它更具可移植性(默认情况下PHP 5安装中的短标签是关闭的)。
+0

好的,这是一个开始。启用错误,并没有任何东西。但phpinfo()告诉了我以下内容。在输出中没有任何地方发现mysql,除了在配置命令部分,我看到--without-mysql。 我assumint这是自我解释。但是,如何打开mysql? – 2008-12-24 19:12:36

1

如果它什么都不做,那不就是说它连接好吗?你期望的结果是什么?

你可以尝试

error_reporting(E_ALL); 
$conn = mysql_connect("localhost", "myusername", "mypassword"); 
if(!$conn) { 
    echo 'Unable to connect'; 
} else { 
    echo 'Connected to database'; 
} 
var_dump($conn); 

编辑:寻址评论说你有一个MySQL查询设置,如果你没有看到“成功”这意味着什么是错的查询。加入到上述

$sth = mysql_query("SELECT * FROM tablename"); 
if(!$sth) { 
    echo 'unable to query: ' . mysql_error(); 
} else { 
    echo 'success'; 
} 
+0

我有if语句下 如果(的mysql_query( “SELECT * FROM表”)){ 打印 “成功”; } – 2008-12-24 19:04:24

1

是否有更多的代码比你显示我们?您刚建立的连接块。如果成功,你什么也看不到,你必须用$conn来做点事情。

要确认,请尝试将密码更改为故意错误的值,然后查看是否出现错误。如果你这样做,代码工作得很好。

0

连接到数据库

$conn = mysql_connect("localhost", "myusername", "mypassword") or die("Unable to connect"); 

将没有(可见(的结果,如果连接被成功地做。然而,一旦你运行该语句,你可以使用其他MySQL功能,使化妆数据库查询。

连接到数据库告诉你的程序“哎,我想谈谈这个数据库”。

0

此代码是为了建立一个数据库连接,没有别的什么你期望看到吗?

试试这个

<?php 
$conn = mysql_connect("localhost", "myusername", "mypassword") 
or die("Unable to connect"); 
print("code sample"); 

print $conn; 

?> 

它应该打印你喜欢的东西“资源#1” ......

然后你可以使用该连接

1

尝试增加给你的代码的顶部:

error_reporting(E_ALL);