我正在努力学习这些东西。请温柔。
这里出了点问题:
$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);
答案 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.
mysqli
或pdo
是更好的选择,您可以更轻松地完成相同的任务,例如,使用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