2
Hello dear stackoverflow users,

私は奇妙な問題を抱えています。私は2ページのフォームを持っています。

ページ 1 は index.php です。

<form action="insert.php" method="post">
<div class="slider"><input type="checkbox" onclick="this.form.checkbox1.checked = this.checked;" id="slider" name="10001" value="10001"><label for="slider"></label></div>  
<input type="checkbox" value="127.20" id="checkbox1" name="chk"/>
<input type="submit">
</form>

ページ2はinsert.phpです

<?php
$q=$_GET["q"];
// Load Joomla! configuration file
require_once('configuration.php');
// Create a JConfig object
$config = new JConfig();
// Get the required codes from the configuration file
$server = $config->host;
$username   = $config->user;
$password   = $config->password;
$database = $config->db;

$con = mysqli_connect($server,$username,$password,$database);
if (!$con){
die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,$database);

$q = mysqli_real_escape_string($con,$q);

// Save form input
$10001 = $POST_['10001'];
$sql_add = "INSERT INTO cypg8_testtest (10001) VALUES ('$10001')";
$result_add = $mysqli->query($sql_add);

// Close connection
mysqli_close($con);
?>

データベース テーブルの名前: cypg8_testtest

このテーブルには 2 つの列があり、次のように設定されています。

ID | 10001

id は列、10001 は列です。

私はインターネットで探していて、次のようないくつかの方法を使用してみました。

しかし、なぜそれらのどれも機能していないのかわかりません。予期しない 10001 や予期しない など、あらゆる種類のエラーが発生します。

上記のコードでは、次のエラーが発生します: 解析エラー: 構文エラー、予期しない '10001' (T_LNUMBER)、変数 (T_VARIABLE) または '$' が必要です

最初のチェックボックスの値(値=10001)をテーブル列10001に保存したい

事前に助けてくれてありがとう。

編集 1: <== 解決策はここにあります。

それを機能させるには、コードとデータベースを変更する必要がありました。

データベースでは、テーブルの列名は文字で始まる必要があるため、これは 10001 から a10001 に変更されます

次に、チェックボックス名もa10001に変更して、dbテーブルの列に対応させる必要がありました。

保存フォームの入力にもいくつかの変更が必要でした。これはコードで見やすくなっています。したがって、簡単に参照できるように、両方のコードを以下に示します。

ページ 1 は index.php です。

<form action="insert.php" method="post">
<div class="slider"><input type="checkbox" onclick="this.form.checkbox1.checked = this.checked;" id="slider" name="a10001" value="10001"><label for="slider"></label></div>  
<input type="checkbox" value="127.20" id="checkbox1" name="chk"/>
<input type="submit">
</form>

ページ2はinsert.phpです

<?php
$q=$_GET["q"];
// Load Joomla! configuration file
require_once('configuration.php');
// Create a JConfig object
$config = new JConfig();
// Get the required codes from the configuration file
$server = $config->host;
$username   = $config->user;
$password   = $config->password;
$database = $config->db;

$con = mysqli_connect($server,$username,$password,$database);
if (!$con){
die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con,$database);

$q = mysqli_real_escape_string($con,$q);

// Save form input
$a10001 = $_POST['a10001'];
mysqli_query($con,"INSERT INTO cypg8_testtest (a10001) VALUES ('".$a10001."')");

// Close connection
mysqli_close($con);
?>

答えにたどり着くのを手伝ってくれたすべての人に感謝します。そして、ソリューションを提供してくれた Arian に感謝します。

4

2 に答える 2

2
 $10001 = $POST_['10001'];

まず、 POST が正しくありません。$_POSTである必要があります。アンダースコアが間違った場所にあります。

第二に、変数は常に文字で始まる必要があります...代わりに $a10001 を試してください

3 番目に、SQL 文字列を変数と連結する必要があります。

試す:

$a10001 = $_POST['10001'];
$sql_add = "INSERT INTO cypg8_testtest (`10001`) VALUES ('".$a10001."')";

最も重要な:

http://dev.mysql.com/doc/refman/5.1/en/identifiers.html

列名は数字だけで構成しないでください。

于 2013-08-21T22:27:35.113 に答える
-1

使ってみて

`col_name`  

テーブルの列名とテーブル名を囲みます。キーボードのチルダ (~) の下の文字です。mysql の使用が推奨されます。

于 2013-08-21T22:25:55.363 に答える