はじめまして。
php初心者です。sqlでデータの更新を行いたいのですが、更新ができません。
お力を貸していただきたいです。
t_edit.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>商品修正</title>
<link rel="stylesheet" href="kanri.css">
</head>
<body>
<div class="base">
<?php
if ($error) echo "<span class=\"error\">$error</span>" ?>
<form action="edit.php" method="post" accept-charset="utf8">
<p>
商品名<br>
<input type="text" name="name" value="<?php echo $name ?>">
</p>
<p>
商品説明<br>
<textarea name="comment" rows="10" cols="60"><?php echo $comment ?></textarea>
</p>
<p>
価格<br>
<input type="text" name="price" value="<?php echo $price ?>">
</p>
<p>
<input type="hidden" name="code" value="<?php echo $code ?>">
<input type="submit" name="submit" value="更新">
</p>
</form>
</div>
<div class="base">
<a href="index.php">一覧に戻る</a>
</div>
</body>
</html>
edit.php
<?php
require_once('index.php');
$link = connect();
mysql_query("set names utf8");
$error = '';
if (@$_POST['submit']) {
$code = (string)filter_input(INPUT_POST, 'code');
$name = (string)filter_input(INPUT_POST, 'name');
$comment = (string)filter_input(INPUT_POST, 'comment');
$price = (string)filter_input(INPUT_POST, 'price');
if (!$name) $error .= '商品名がありません。<br>';
if (!$comment) $error .= '商品説明がありません。<br>';
if (!$price) $error .= '価格がありません。<br>';
if (preg_match('/\D/', $price)) $error .= '価格が不正です。<br>';
if (!$error) {
$sql = "UPDATE goods SET name='$name',comment='$comment',price=$price WHERE code=$code";
Var_dump($name);
Var_dump($comment);
Var_dump($sql);
$sql = prepare($sql);
$result = mysql_query($sql);
if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}
exit();
}
} else {
$code = $_GET['code'];
$sql = "SELECT * FROM `goods` WHERE code=$code";"set name utf8";
$sql = prepare($sql);
$result = mysql_query($sql);
if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}
while($row = mysql_fetch_array($result)) {
$name = $row['name'];
$comment = $row['comment'];
$price = $row['price'];
}}
require 't_edit.php';
?>
ご教授、宜しく御願い致します。
No.3ベストアンサー
- 回答日時:
どうやら単純に文法エラーですね
$sql = "UPDATE goods SET name='$name',comment='$comment',price=$price WHERE code=$code";をした後の
$sql = prepare($sql);の部分ですが、そもそもprepare処理がなされていないので、
この行をコメントアウトしてみてください
mysql_queryを使う限りいろいろセキュリティ上問題が残りますが、
当座チェックをする限りはなくても問題ないと思います。
もしここの部分が問題だった場合は
prepare関数を調整することになるのでしょう。
ということでPDOを利用して書きなおすほうが早いかもしれません。
No.2
- 回答日時:
とりあえずエラーが発生しているならそのエラー内容を表示すべきです
またなにをもって更新されていないと判断しているか提示ください
>if (@$_POST['submit']) {
以降で$_POST["code"]を利用して更新していますが
更新したデータを取得する部分がelse以降にあるため
更新した直後はデータを確認していませんよね?
しかも検索するコードは$_GET["code"]を利用しているし、
もうすこしきちんとフローを練り直した方がよいのでは?
(PDOへの移行も含めて要検討)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'\バ\イカラーシャツ\',comment=\'\ステ\ンカラ??\?\',price=5432 WHER' at line 1
と表示されています。
勉強が足らなすぎで申し訳ありません。
ご回答ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DBで検索結果に該当するデータ...
-
文字化けが解決できません。お...
-
アラートでyes noを作りたいです。
-
mysql_insert_id()の使い方
-
checkboxクリック時、SQLを実行...
-
phpでの更新ができません。
-
mysqlテーブルから一つレコード...
-
mysqlから取得した配列をカンマ...
-
smartyでMySQLから連想配列取り...
-
SELECT結果から動的にコンボボ...
-
実行時エラー3131 FROM 句の構...
-
MySQLでデータベースにデータin...
-
VBAをつかってクエリの情報を抽...
-
<VB.NET>INSERT文でDBにデータ...
-
ResultSetインターフェイスでの...
-
テキストボックスに入れた内容...
-
insert1つの処理でもトランザ...
-
Pro*Cの構文エラー
-
日またぎの計算
-
csvをDBへ読み込んだら、NULLが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで[]の使い方について
-
エクセルVBAについて
-
DBで検索結果に該当するデータ...
-
アラートでyes noを作りたいです。
-
phpでmysqlを使ってデータベー...
-
checkboxクリック時、SQLを実行...
-
dbに登録したデータをphpのプル...
-
PHP+MySQLでの配列のinsert文に...
-
pg_queryの結果を2回とりだす...
-
検索結果($_POST)が2ページ目...
-
PHPについてなのですが未定義の...
-
VBA初心者です。
-
sortable ギブアップです…助け...
-
PEAR::DBで取得したデータで処...
-
DBのデータを表示させたい
-
データベース表示結果のデザイン
-
PHP 勤務時間の合計を出したい
-
mySQLからデータを取り出す
-
PHP と MySQL でテーブルの行数...
-
連想配列、オブジェクト配列の...
おすすめ情報