函数popList()
需要两个参数 - 列的名称和表的名称。 基本上popList(
)函数连接到一个mysql
服务器,然后连接到一个数据库,并根据传递给用来填充页面上的列表框的函数来建立一个sql查询来检索数据。函数会填充第一个列表框,但不会从数据库表中填充第二个列表框
只有一个列表框可以正常工作,但如果页面上有第二个列表框再次调用该函数时使用了不同的参数(列名和表名),它将显示为空,并在源代码中显示以下内容的页面右侧下第一填充列表框的源:
警告:mysql_connect()函数[function.mysql-连接]:拒绝用户 'ODBC' @ '本地主机'(使用密码访问 :否)in C:\ xampp \ htdocs \ test on line
未连接:(使用密码:NO) 访问被拒绝的用户“ODBC” @“localhost”的
我用两个呼叫这是默认的本地主机,树根和测试没有密码(纯粹相同的连接凭据目的)
为什么它表现得像这样?
编辑*(源)*:
<?php
function popList($col, $tbl) {
require_once "credentials.php";
// Opens a connection to a MySQL server
$connection=mysql_connect($host, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
$sql = "SELECT $field FROM $table";
$query = mysql_query($sql);
while ($row = mysql_fetch_array($query)) {
echo '<option value="' . $row["$field"] . '">' . $row["$field"] . '</option>';
}
mysql_close($connection);
}
?>
SOLUTION:
新:好像用require_once
和include_once
导致该问题,但使用include
或require
实际修复问题。
替换
:require_once "credentials.php"
从
credentials.php
实际的代码,像这样
function popList(...) {
require "credentials.php"; // changed to require from require_once. same with include
...
}
我们可能需要看到代码... – eggyal 2012-04-25 16:06:46
好。添加了源代码。 – Bob 2012-04-25 16:11:51
它将非常显得好像'$ username'在函数调用之间被改变;也许搜索其余的代码来引用该变量? – eggyal 2012-04-25 16:13:24