PHP MySQL не позволяет мне вставить в таблицу - PullRequest
1 голос
/ 10 августа 2010

Я использую код:

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 Ошибка:

Я предполагаю, что это связано со мной при попытке доступа к таблице с помощью переменной?

Буду признателен за любую помощь, я все еще новичок в PHP, если вы не можете сказать: P

РЕДАКТИРОВАТЬ: Ах да, строка 14 это

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

Ответы [ 2 ]

6 голосов
/ 10 августа 2010

Ошибка означает, что соединение, которое вы предоставляете mysql_query ($con), не является допустимым ресурсом MySQL. $con никогда не определяется в вашей функции. Вы хотите открыть соединение перед запросом, например:

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

Если вы уже создали соединение с сервером MySQL вне функции, вы можете импортировать глобальную переменную $ con, добавив global $con; в верхней части вашей функции (см. область действия переменной в php документы, если вам нужна дополнительная информация).

Альтернативно, ресурс соединения является необязательным параметром во всех функциях mysql, поэтому вы можете просто использовать mysql_query(...) (без указания соединения), а PHP будет использовать последнее соединение, открытое mysql_connect.

1 голос
/ 10 августа 2010

Вы не определяете свой $con в функции.Это часть ограниченных правил PHP.Переменные, определенные вне функции, не видны внутри функции, если вы не объявите их global, вам понадобится что-то вроде этого:

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

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

Итак, ошибка вызвана тем, что $ con является нулем внутри функции, который "не является допустимым ресурсом MySQL-link"

...