PHP mySQL不允许我插入表中

时间:2010-08-10 15:30:07

标签: php mysql database insert

我正在使用代码:

function insertV($deptx, $coursex, $secx, $isbnx,$titlex, $authorx,$usedpx,$newpx)
{
$sql = "INSERT INTO `$deptx` (`course`, `sec`, `isbn`, `title`, `author`, `usedp`, `newp`) 
VALUES ('$coursex','$secx','$isbnx','$titlex','$authorx','$usedpx','$newpx')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }

}

$dept = "ACCOUNTG";
$course = "340";
$sec = "101";
$isbn = "9780324651140";
$title = "FINANCIAL ACCOUNTING";
$author = "STICKNEY";
$usedp = "$129.75";
$newp = "$199.75";
insertV($dept,$course,$sec,$isbn,$title,$author,$usedp,$newp);

但我一直收到错误:

  

警告:mysql_query():提供   参数不是有效的MySQL-Link   资源   /home/public_html/mysite.com/myscript.php   第14行错误:

我猜这与我尝试使用var?

访问表有关

任何帮助都会受到赞赏,如果你不知道的话,我还是PHP新手:P

编辑:哦,是的,第14行是

if (!mysql_query($sql,$con))

2 个答案:

答案 0 :(得分:6)

该错误表示您向mysql_query$con)提供的连接不是有效的MySQL资源。 $con永远不会在您的函数中定义。您希望在查询之前打开连接,如下所示:

$con = mysql_connect("[mysql server hostname]", "[mysql username]", "[mysql password]");

如果您已经在函数外部创建了与MySQL服务器的连接,则可以通过在函数顶部添加global $con;来导入全局$ con变量(请参阅php中的variable scope文档,如果您想了解更多信息)。

或者,连接资源是所有mysql函数中的可选参数,因此您可以使用mysql_query(...)(不指定连接),PHP将使用mysql_connect打开的最后一个连接。

答案 1 :(得分:1)

您没有在功能中定义$con。这是PHP的范围规则的一部分。函数外定义的变量在函数中是不可见的,除非你声明它们global,你需要这样的东西:

function insertV(...) {
    global $con;

    $query = "...";
    etc...
}

所以,错误是由于函数中的$ con为空,这是“不是一个有效的MySQL链接资源”