Не выполняентся запрос в БД

Dimm

Новичок
Не выполняентся запрос в БД

Почему- то $result возвращает false. Не могу понять почему. Если вручную вводить запрос (INSERT INTO `PRODUCTS` VALUES ('', '', '', 'drh','drh', 'drh', 'NOW()')) в базу, то всё работает.
ещё пишет Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in...
мож пакет слетел? использую Денвер, примечательно, что всё работало:)
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title></title>
</head>

<body>
 <?
  function dbconnect() {
   @ $db = mysql_pconnect("localhost", "mycms", "mycms");
  if ($db)
  { print" ok connect to db";

  } else {
     echo "Error: Could not connect to database.  Please try again later.";
     exit;
  }
 };


 function addproduct ($caption, $description, $price) {
   $caption = addslashes($caption);
   $description = addslashes($description);
   $price = addslashes($price);
   mysql_select_db("PRODUCTS");
   $sql = "INSERT INTO `PRODUCTS` VALUES ('', '', '', ".$caption."','".$description."', '".$price."', 'NOW()')";
    $result = mysql_query($sql);
    if ($result)
    {
      print " $caption book inserted into database.";
      print "<script language=\"JavaScript\">
       setTimeout('window.location.href = \"test.php\"',3000)
      </script>";
    } else {
      print "$caption book ERROR adding to database.";
      print "<script language=\"JavaScript\">
       setTimeout('window.location.href = \"test.php\"',3000)
      </script>";
         }
 }


 $add = $_POST['add'];
 $caption = $_POST['caption'];
 $description = $_POST['description'];
 $price = $_POST['price'];
  print "$add<br>$caption<br>$description<br>$price<br>";
 if ($add==1){

 dbconnect();
 addproduct($caption,$description,$price);
 $add=0;
 } else {
   print "oops!";
   };
 ?>
 <form name="add_item" action="test.php" method="POST">
 Name<br>
 <input name="caption" size="40" maxlength="60" /><br>
  Price<br>
  <input name="price" /><br>
  DescriPT<br>
 <textarea name="description" rows="11" cols="45"></textarea><br>
 <input type="hidden" name = "add" value="1"/>
 <input type="submit" name="subm" value="submit" />

 </form>
</body>

</html>
 

zerkms

TDD infected
Команда форума
stillwaiting
кто тебе такую глупость сказал?

Dimm
phpfaq.ru/debug
 

scandal

Новичок
А если заменить
$sql = "INSERT INTO `PRODUCTS` VALUES ('', '', '', ".$caption."','".$description."', '".$price."', 'NOW()')";
на
PHP:
$sql = "INSERT INTO `PRODUCTS` VALUES ('', '', '', '$caption','$description', '$price', CURRENT_TIMESTAMP)";
???
 

Dimm

Новичок
scandal
не, все равно даёт ложный $result

stillwaiting
не обязателен он там:)

zerkms
Спасибо, посмотрю
 

scandal

Новичок
вот этот код вставляет записи в таблицу products. Если у тебя он не сработает, то дай, пожалуйста, структуру products (поля и их типы).

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title></title>
</head>

<body>
 <?php
  function dbconnect() {
   @ $db = mysql_pconnect("localhost", "xxx", "xxx");
  if ($db)
  { print" ok connect to db";

  } else {
     echo "Error: Could not connect to database.  Please try again later.";
     exit;
  }
 };


 function addproduct ($caption, $description, $price) {
   $caption = addslashes($caption);
   $description = addslashes($description);
   $price = addslashes($price);
   mysql_select_db("testdb");
	$sql = "INSERT INTO PRODUCTS VALUES ('', '', '', '$caption','$description', '$price', CURRENT_TIMESTAMP)";
    $result = mysql_query($sql);
    if ($result)
    {
      echo " $caption book inserted into database.";
      echo "<script language=\"JavaScript\"> setTimeout('window.location.href = \"test.php\"',3000) </script>";
    } else {
      echo "$caption book ERROR adding to database.";
      echo "<script language=\"JavaScript\"> setTimeout('window.location.href = \"test.php\"',3000) </script>";
         }
 }


 $add = @$_POST['add'];
 $caption = @$_POST['caption'];
 $description = @$_POST['description'];
 $price = @$_POST['price'];
  print "$add<br>$caption<br>$description<br>$price<br>";
 if ($add==1){

 dbconnect();
 addproduct($caption,$description,$price);
 $add=0;
 } else {
   print "oops!";
   };
 ?>
 <form name="add_item" action="test.php" method="POST">
 Name<br>
 <input name="caption" size="40" maxlength="60" /><br>
  Price<br>
  <input name="price" /><br>
  DescriPT<br>
 <textarea name="description" rows="11" cols="45"></textarea><br>
 <input type="hidden" name = "add" value="1"/>
 <input type="submit" name="subm" value="submit" />

 </form>
</body>

</html>
 

O1&g

Новичок
Мне кажется, у тебя просто connect слетел, попробуй продебагить
PHP:
$db = mysql_pconnect("localhost", "xxx", "xxx");
убери @ и посмотри
PHP:
var_dump($db);
затем посмотри что выдает
PHP:
mysql_select_db("testdb", $db) or die('Can\'t use testdb : ' . mysql_error());
 

Dimm

Новичок
Всё работает, спасибо за помощь. Просто у меня так много было вариантов структур таблиц и вариантов кода записи в них, что к вечеру меня заклинило и я затерялся в вариантах . :) Заглючило:%)
 
Сверху