我已经有了名为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());
?>
不完全是你的问题的答案,但评论太长: 建立数据库连接后,您可以通过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";
}
你去吧mysql_
家族已经被弃用了一段时间。请转到mysqli_
图书馆。另一台机器可能正常工作,因为它使用的是旧版本的PHP,在该版本中它尚未被弃用,或者已弃用的警告已被全局抑制。
在野外
$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_
程序函数族的参数。
最后,但并非最不重要的是,永远不要使用@
符号进行调试。这会抑制它之前的函数的错误警告。