
質問させていただきます。
先日からPHPよりSQLテーブルへの値の追加を試しているのですが、なかなかうまくいきません。いろいろなサイトで資料を探しましたが、それでもできませんでした。
//問題個所
$sql = "INSERT INTO whatsnew(date,title,body) VALUES('.$ThisTime.','.$Title.','.$Body.')";
$result = mysql_query($sql);
date、title、bodyは(dateも含め)すべてTEXTです。ちなみにエラーが出るのではなく、何事もなかったかのようになりました(直後にif(!$result){print 'INSERT Error!';}を挿入するとINSERT Error!と表示される)。
どうすればいいか教えていただければ幸いです。
No.6ベストアンサー
- 回答日時:
ずいぶん遅くなりましたが、解決しましたでしょうか?
もし解決していないようでしたら、
create文を見せていただけたりしますか?
symgtさんがおっしゃっている、
>mysql_query以前の処理でエラーになっているのではないでしょうか?
というのは、もしかしたらデータ型だったりとかしませんか?
create文で宣言した際、DATETIME、DATE、TIMESTAMPのどれを宣言したのか、
データテーブルに入れようとしている値とデータ型はマッチしているか、
そちらの検証はお済みでしょうか。
symgtさんの例だと、dateカラムのデータ型はDATETIMEですね。
symgtさんご自身で宣言してINSERTしているため、エラーはでません。
↓↓
create table whatsnew (
date DATETIME NOT NULL,
title varchar(64) NOT NULL,
body varchar(64) NOT NULL
);
参考URL:http://dev.mysql.com/doc/refman/4.1/ja/datetime. …
No.5
- 回答日時:
もし上記の$sqlをそのまま使っているようでしたら、
PHPとMySQLの文法上で問題があるかもしれません。
MySQLでは、クォートされていない文字列はカラム名だと認識されますので、その辺りでうまく変数が渡せていないように思います。
$sqlへの代入を以下のように修正してみたらどうなるでしょうか。
$sql = "INSERT INTO whatsnew(date,title,body) VALUES('".$ThisTime."','".$Title."','".$Body."');";
回答ありがとうございます。
試してみましたが、やはりだめでした。SQL文が問題ではないということなんでしょうが・・・。
引き続きがんばって解決策を探しつつ、ここで解決策を募集しようと思います。。ありがとうございました。
No.4
- 回答日時:
>Table 'xxxxxx.whatsnew' doesn't exist
そういうエラーがでるなら
xxxxxxというデータベースにwhatsnewというテーブルがないのでしょう?
質問者さんのデータベースがどうなっているか、私たちにはわかりませんので
適切なテーブル構成にしてくださいとしかいいようがないですが・・・・
そうですよねぇ・・・特に調べもせず質問して申し訳ありません。
ただPHPMyAdminなどを見るときちんとテーブルがありますし、そもそもデータを取り出すことはできているんです。
とりあえずなんとかしようと思います。ありがとうございました。
No.3
- 回答日時:
適当にテーブルを作成してテストしてみました。
-- whatsnew table
create table whatsnew (
date DATETIME NOT NULL,
title varchar(64) NOT NULL,
body varchar(64) NOT NULL
);
// test.php
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_selected = mysql_select_db('test');
$ThisTime = '2008-09-07';
$Title = 'Title';
$Body = 'Body';
$sql = "INSERT INTO whatsnew(date,title,body) VALUES('$ThisTime','$Title','$Body')";
echo "$sql\n";
// INSERT INTO whatsnew(date,title,body) VALUES('2008-09-07','Title','Body')
$result = mysql_query($sql);
if (!$result) {
echo 'ERROR: ' . mysql_error();
}
mysql_close($link);
?>
問題なくinsertできているのでsqlが間違っているわけではないようです。
mysql_query以前の処理でエラーになっているのではないでしょうか?
わざわざテストまでして頂きありがとうございます。
先程No.2にも書きましたが確実にこの部分が原因でエラーとなっているようです。実際この部分を外すと正常に動作します。
もしかするとロリポップを利用しているのが関係しているのでしょうか・・・?
No.2
- 回答日時:
予約語、フィールドの明示化、PHPの変数の展開など理解があまいようです。
以下のいずれかで対応してみてください。
$sql = "INSERT INTO `whatsnew`(`date`,`title`,`body`) VALUES('{$ThisTime}','{$Title}','{$Body}')";
もしくは・・・
$sql = "INSERT INTO `whatsnew`(`date`,`title`,`body`) VALUES('".$ThisTime."','".$Title."','".$Body."')";
なおデバッグには
$result = mysql_query($sql) or die(mysql_error());
で処理するのが効率的です。
わざわざありがとうございます。確かに僕は勉強不足なのでこれからもっとがんばって勉強しようと思っています。
ですが「Table 'xxxxxx.whatsnew' doesn't exist」と出てやはり追加できませんでした。SQL文以外が間違っているのか・・・でもSELECTとかなら問題なく実行できるのですが・・・。
No.1
- 回答日時:
echo $sql; とかで$sqlの内容を確認すればすぐに分かると思いますが...
$ThisTime、$Title、$Body の前後についている「.」は不要です。
迅速な回答ありがとうございます。
おっしゃられた通り、変数前後の「.」を削除、echo $sql;を行いました。
表示されたのは
INSERT Error!INSERT INTO whatsnew(date,title,body) VALUES('2008-09-07','ddd','ddd')
でした。これは正常にクエリが送信できている・・・わけではないと思うんですが、どうなんでしょうか。
あとついでに$bodyなどの前後のシングルクオートも消しましたが成功しませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php エラー 2 2022/10/23 16:43
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INSERTを行う際に別の表のデー...
-
sqliteとの互換
-
【php+mysql】mysqlのレコード...
-
.sqlのファイルをそのままコマ...
-
Perlでexecuteをまとめて実行し...
-
MySQLの.sqlファイルを実...
-
mysqlって???(汗
-
SQLで取得したフィールドをSQL...
-
パスワードの暗号化
-
以下のSQL文の間違いがわかりま...
-
ライセンスについて
-
ユーザーが存在すれば
-
MYSQLについて
-
mySQLのスピード
-
「CSE」や「かねやん」からのMy...
-
配列の要素でmysqlに問い合わせ
-
PHPからMySQLが動かせません
-
MySQLに画像を保存したい
-
ローカルエリア内のMySQLサーバ...
-
バージョン3.23.53からアップグ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP+MySQLから結果セット取得後...
-
F5対策 sql発行ページにて
-
【php+mysql】mysqlのレコード...
-
どうしても、%$keyword%でひっ...
-
複数条件の検索について
-
my sqlはどこにあるのか?
-
PEARでレコード数の取得
-
MySQLで、INSERT文でエラー
-
PHPで特定のレコードを取り出す
-
PHP+MySQLによるINSERTについて
-
updateがうまくできない。
-
SQLiteについて
-
mysql PHPでUPDATE
-
SQL whereの中のif文について
-
Perlでexecuteをまとめて実行し...
-
コメントが消えてしまいます
-
PHP+MySQLでデータ登録がうまく...
-
mySQLで複雑な演算
-
mysql PHPでUPDATE
-
MySQLカラム名は日本語と英数字...
おすすめ情報