我的php脚本没有使用给定的username/pass/host,而是使用root@localhost(密码:否)

我的php脚本没有使用给定的username/pass/host,而是使用root@localhost(密码:否),php,mysql,connection,Php,Mysql,Connection,有问题!虽然我发现了几乎相似的线索,但都没有帮助: 我已经编写了一个php脚本,从MySQL数据库中获取注册用户的数量。该脚本在我的localhost中运行良好;它使用的是给定的用户名、pass和主机名,分别是root、root和localhost,但脚本没有使用给定的用户名/pass/host,而是使用root@localhost密码:Live server中没有密码 在Live server中,我创建了一个MySQL用户,设置了不同的密码,主机名当然不是localhost。我用新创建的mys

有问题!虽然我发现了几乎相似的线索,但都没有帮助:

我已经编写了一个php脚本,从MySQL数据库中获取注册用户的数量。该脚本在我的localhost中运行良好;它使用的是给定的用户名、pass和主机名,分别是root、root和localhost,但脚本没有使用给定的用户名/pass/host,而是使用root@localhost密码:Live server中没有密码

在Live server中,我创建了一个MySQL用户,设置了不同的密码,主机名当然不是localhost。我用新创建的mysql用户数据更新了脚本。但是,每当我运行脚本时,我都会看到脚本仍在使用root、root和localhost

请看一下脚本:

    //database connection
    $conn = mysql_connect( "mysql.examplehost.com", "myusername", "mypass" );
$db = mysql_select_db ("regdb",$conn); //Oops, actually it was written this way in the script. I misstyped it previously. now edited as it is in the script.

    //Query to fetch data
$query = mysql_query("SELECT * FROM regd ");            
while ($row = mysql_fetch_array($query)): 
$total_regd = $row['total_regd'];
endwhile;   

echo $total_regd;
-有些人说要更改默认用户名并传入phpMyAdmin目录中的config.ini.php文件。这有帮助吗??我没有尝试此操作,因为我的托管提供商没有授予我访问该目录的权限,因为我正在使用免费托管测试脚本,或者我根本没有找到它:


请帮助….

前言:MySQL扩展被标记为已弃用,最好使用mysqli或

虽然您将连接资源存储在$conn中,但在调用mysql\u查询时没有使用它,也没有检查mysql\u connect的返回值,即如果由于某种原因连接失败,mysql\u查询可以自由建立新的默认连接

<?php
//database connection
$conn = mysql_connect( "mysql.examplehost.com", "myusername", "mypass" );
if ( !$conn ) {
    die(mysql_error()); // or a more sophisticated error handling....
}

$db = mysql_select_db ("regdb", $conn);
if ( !$db ) {
    die(mysql_error($conn)); // or a more sophisticated error handling....
}

//Query to fetch data
$query = mysql_query("SELECT * FROM regd ", $conn);
if (!$query) {
    die(mysql_error($conn)); // or a more sophisticated error handling....
}

while ( false!=($row=mysql_fetch_array($query)) ): 
    $total_regd = $row['total_regd'];
endwhile;   

echo $total_regd;
首先:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

您的mysql\u错误是什么

OT:不鼓励使用mysql扩展。相反,应该使用or扩展。非常感谢Alvin Wong提供的宝贵信息:您推荐MySQLi还是PDO_MySQL?哪一个更容易学习和使用?非常感谢VolkerK的回答:我有两个问题:Q1。如果MySQL扩展被标记为已弃用,为什么它仍然在我的脚本中工作?问题2。限制1是否意味着MySQL将只查询第一行?A1:不推荐并不意味着删除/删除,只是需要注意的是,a由于各种原因您不应该使用它,b它可能会在未来的版本中删除。请参见A2:是的……是的,限制1允许MySQL在结果集中确定有一条记录后立即结束操作,如果是SELECT*foo限制1,是的,这将是第一行,尽管您无法确定第一行在本文中的含义,例如,从foo中选择x,其中y>5按y描述限制1排序,请参阅感谢您的回复BlackCat。它说用户的访问被拒绝root@localhost使用密码:否
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}