MySQL中使用WAMPServer的未知数据库'database_name'

问题描述 投票:2回答:2

我已经有了名为als的数据库,但我仍然遇到错误。

<?php

$mysql_host='localhost';
$mysql_user='root';
$mysql_password='';
$mysql_db='als';
$con = @mysql_connect($mysql_host,$mysql_user,$mysql_password) or             die(mysql_error());
@mysql_select_db($mysql_db) or die(mysql_error());

?>
php mysql wampserver
2个回答
1
投票

不完全是你的问题的答案,但评论太长: 建立数据库连接后,您可以通过SHOW DATABASES查询现有数据库

<?php
$mysqli = new mysqli('localhost', 'root', '');
if ($mysqli->connect_errno) {
    trigger_error('query failed: '.$mysqli->connect_error, E_USER_ERROR);
}

$result = $mysqli->query('SHOW databases')
    or trigger_error('connect failed: '.join(',', $mysqli->error_list), E_USER_ERROR);

foreach( $result as $row ) {
    echo join(', ', $row), "<br />\r\n";
}

你的数据库als出现了吗? 由于您使用的是默认root帐户(使用空密码;您可能也想查看它),因此不应存在任何与权限相关的问题。所以,如果数据库没有出现,那就不存在......

(几乎)使用PDO(我选择的武器)而不是mysqli的相同脚本:

<?php
$pdo = new PDO('mysql:host=localhost;charset=utf8', 'root', '', array(
    PDO::MYSQL_ATTR_DIRECT_QUERY => false,
    PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION
));

foreach( $pdo->query('SHOW DATABASES', PDO::FETCH_NUM) as $row ) {
    echo $row[0], "<br />\r\n";
}

0
投票

你去吧mysql_家族已经被弃用了一段时间。请转到mysqli_图书馆。另一台机器可能正常工作,因为它使用的是旧版本的PHP,在该版本中它尚未被弃用,或者已弃用的警告已被全局抑制。

MySQLI Connect

在野外

$mysql_host='localhost';
$mysql_user='root';
$mysql_password='';
$mysql_db='als';
$con= mysqli_connect($mysql_host,$mysql_user,$mysql_password, $mysql_db) or die("Error " . mysqli_error($con));

不再需要任意选择数据库。现在你可以使用$con作为mysqli_程序函数族的参数。

最后,但并非最不重要的是,永远不要使用@符号进行调试。这会抑制它之前的函数的错误警告。

© www.soinside.com 2019 - 2024. All rights reserved.