0

ドロップダウンボックスの選択からMYSQLデータベースに値を挿入する際に問題が発生しました。

.sqlファイルの問題に絞り込んだと思います。私はこれを理解しようと何時間も座っていましたが、私はこれらすべての完全な初心者であり、非常に小さなものが欠けている可能性があります。

mysql_error()ショー:

SQL構文にエラーがあります。1行目の''、''、''、'')'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

SQLファイル:

-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jun 27, 2012 at 10:06 PM
-- Server version: 5.5.8
-- PHP Version: 5.3.5

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `chilli`
--
DROP DATABASE IF EXISTS `chilli`;
CREATE DATABASE `chilli` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `chilli`;

-- --------------------------------------------------------

--
-- Table structure for table `survey`
--

DROP TABLE IF EXISTS `survey`;
CREATE TABLE IF NOT EXISTS `survey` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `videos` varchar(50) NOT NULL,
  `scoville` varchar(50) NOT NULL,
  `extract` varchar(50) NOT NULL,
  `onions` varchar(50) NOT NULL,
  `retail` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `survey`
--

INSERT INTO `survey` (`id`, `username`, `videos`, `scoville`, `extract`, `onions`, `retail`) VALUES
(1, 'sean', 'Yes', '0-200,000 SHU', 'Yes', 'No', 'No');


-- --------------------------------------------------------



--

-- Table structure for table `orders`

--



DROP TABLE IF EXISTS `orders`;

CREATE TABLE IF NOT EXISTS `orders` (

  `id` int(11) NOT NULL AUTO_INCREMENT,
  `address` varchar(50) NOT NULL,

  `mild` varchar(50) NOT NULL,

  `medium` varchar(50) NOT NULL,

  `hot` varchar(50) NOT NULL,

  `v_hot` varchar(50) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;



--

-- Dumping data for table `orders`

--



INSERT INTO `orders` (`id`, `address`, `mild`, `medium`, `hot`, `v_hot`) VALUES

(1, 'Fairman Place', 'Ancho', 'Chipotle', 'Shabu Shabu', 'Infinity Chilli');

PHPコード:

<?php require_once('Connections/localhost.php'); ?>

<?php


$add = $_POST['address'];
$mild = $_POST['mild'];
$medi = $_POST['medium'];
$hot = $_POST['hot'];
$v_hot = $_POST['v_hot'];


mysql_select_db($database_localhost,$localhost);

$q2 = "INSERT INTO orders VALUES (NULL, '$add', $mild', '$medi', '$hot', '$v_hot')";
$r2 = mysql_query($q2,$localhost);

if (mysql_affected_rows($localhost) == 1) {
    echo '<script type="text/javascript" language="javascript">
    alert("Your order has been placed! Thank You.");
    history.back();</script>';
    }

    else {
        //query failure
    echo mysql_error();
    echo '<script type="text/javascript" language="javascript">
    alert("The order could not be completed due to a system error");
    history.back();</script>';  
    }

mysql_close($localhost);


?>

ご注意ください

sqlファイルからわかるように、2つのテーブル(調査と注文)があります。最初のテーブル(調査)は正常に機能し、ほぼ同じPHPコードを使用します。テーブルに問題なくレコードを追加します。しかし、2番目のテーブル(注文)に値を追加できないようです。

このサイトの他の人々のコードから私が見たものから、私のコードは少し異例に見えるかもしれないので、コードを片付けるためのヒントを自由に言及してください。

このトピックは私が見ることができるものから数回カバーされましたが、私はまだ与えられた答えをエミュレートすることによって解決策を見つけることができないようです。

前もって感謝します。

4

1 に答える 1

3

クエリに一重引用符がありません:

$q2 = "INSERT INTO orders VALUES (NULL, '$add', $mild', '$medi', '$hot', '$v_hot')";
                                               ^
                                               Right here
于 2012-07-14T16:50:30.560 に答える