有2个文件,一个为数据连接文件:connection.php
<?
$mysql = mysql_connect("localhost:3306","root","000");mysql_select_db("db", $mysql);
?>另一个为数据写入文件:join.php
<? require("connection.php"); ?>
<?
$sql = "insert into tab values('a', 'b')";
mysql_query($sql);
?>但是在运行时,出现如下错误:
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in c:\root\join.php on line 4如果把connection.php里的内容都移到join.php中来,则运行正常。
1、请问无法写入是什么原因?是否变量作用范围的问题?
2、PHP的变量不需要定义的吗(比如var dim),感觉PHP里对变量的作用范围比较另类,比如下面的例子,它是在函数里来指定为全局变量。而其它语言往往是在外部声明。能否讲讲这方面?<?php
$a = 1;
$b = 2;function Sum()
{
    global $a, $b;    $b = $a + $b;
}Sum();
echo $b;
?> 

解决方案 »

  1.   

    mysql_query($sql, $mysql);试一下
      

  2.   

    mysql_query($sql, $mysql);如果加入参数,则提示如下,是否php的环境设置的问题?Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\www\php\t_join.php on line 74
      

  3.   

    你确定你 require("connection.php");这个路径是正确的?
      

  4.   

    你在connection.php里添加一个变量$temp = "ok";
    然后再包含的文件里 global $temp; echo $temp;
      

  5.   

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in c:\root\join.php on line 4
    出现这个错误是你路径包含的不对
      

  6.   

    包含文件路径不对!
    否则不会提示:
    Access denied for user 'ODBC'@'localhost' (using password: NO)
    即使有错误而是应该提示
    Access denied for user 'root'@'localhost' (using password: Yes)
      

  7.   

    如果是路径包含不对,将会提示:
    require_once(../connection.php) [function.require-once]: failed to open stream: No such file or directory in D:\www\php\test2.php on line 2可能是系统配置有问题。
      

  8.   

    尝试了,无输出。应该是读取不到包含文件中的变量。所以在考虑是否PHP的环境设置问题,引起包含文件的变量失效?
      

  9.   

    我安装的phpstudy2010的快速环境。