php语法数据库连接

时间:2014-05-15 06:50:22

标签: php syntax

我正在努力学习这些东西。请温柔。

这里出了点问题:

$dbhost = "localhost";
$dbname = "something_dbname"; 
$dbuser = "something_user";
$dbpass = "pwpwpwpw";
$dberror1 = "Could not connect to the database!";
$dbconnected = "you are connected!";

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ($dberror1);
$select_db = mysql_select_db($dbname . $dbconnected) or die ($dberror1);

我的错误在哪里?我希望$ dbconnected显示... 我可以轻松使用

echo "hello";

它显示我连接但我正在尝试熟悉使用多个变量。

会更好吗?

$dbhost = "localhost";
$dbname = "something_dbname"; 
$dbuser = "something_user";
$dbpass = "pwpwpwpw";
$dberror1 = "Could not connect to the database!";
$dbconnected = "you are connected!";

if ($mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbname))
echo $dbconnected;
else die($dberror1);

2 个答案:

答案 0 :(得分:1)

现在您正在尝试连接到名为something_dbnameyou are connected的数据库。 .将变量连接成一个字符串。

要解决您的问题,请尝试以下方法:

首先,定义$dbhost - 我在你的代码中没有看到它。

然后将最后一行更改为:

$select_db = mysql_select_db($dbname) or die ($dberror1);

然后,只需echo $dbconnected;

如果您未连接,该页面将调用die,并且永远不会到达回显$dbconnected的行。如果您已连接,程序将继续执行下一行并回显您的成功消息。

或者你可以更明确地这样做:

if ($select_db = mysql_select_db($dbname))
    echo $dbconnected;
else die($dberror1); 

要解决更大的问题,不要使用mysql_*Read this for more information.

mysqlipdo是更好的选择,您可以更轻松地完成相同的任务,例如,使用mysqli连接到数据库只是:

$mysqli = new mysqli($dbhost, $dbuser, $dbpassword, $dbname);

或者你可以使用程序样式,它更接近你当前的代码。以下代码片段来自php手册,在我在以下评论中链接的页面上。

$link = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);

if (!$link) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Success... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);

答案 1 :(得分:1)

我强烈建议使用PDO。连接字符串类似,可以使用:

完成
// I do not see $dbhost defined in your code. Make sure you have it defined first
try {
    $conn = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo $dbconnected; // will print out the connection success message
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

要回答有关不使用mysql_*功能的问题,可以查看this