すみませんが、お助けください。私は、PHPの初心者で現在猛特訓でマスター中です。よろしくお願いします。現在、本を購入し、そこに記述されている通りやってみているのですが、今まで上手くできていたのですが、ここの記述ではどうしてもエラーが出てしまいます。そこでお願いで投稿しました。
<利用環境>
・レンタルサーバー/ラピッドサーバー RV-310
・MYSQL/MySQL 4.1.18
・「動物名」と「動物の年齢」を入力する練習フォームとPHP
■php内容 insert.php ※フォームは文字数の関係で省略しました
<?php
// データベースへの接続情報を設定します。
$dbUser = "***";
$dbPass = "***";
$dbHost = "localhost";
$dbName = "***";
// フォームから送信されたデータを取得します。
$animal_c = $_POST['animal_c'];
$age_c = $_POST['age_c'];
// mysqli_escape_stringを使用してエスケープを行うため、
// magic_quotes_gpcがOnの場合、エスケープされた文字を元に戻します。
if( get_magic_quotes_gpc() ){
$animal_c = stripslashes( $animal_c );
$age_c = stripslashes( $age_c );
}
// MySQLとの接続を行ないます。
$db = mysql_connect( $dbHost, $dbUser, $dbPass )
or die( "MySQL DBとの接続に失敗しました" );
// クライアントの文字コードセットをEUC-JPに変更します。
mysql_query( "SET NAMES ujis", $db );
// データベースを選択します。
mysql_select_db( $dbName, $db )
or die( "データベース" . $dbName . "との接続に失敗しました。" );
// エスケープ処理を行います。
// 数値が入る事が予測される値もエスケープ処理は必ず行います。
$animal_c = convSqlString( $animal_c );
$age_c = convSqlString( $age_c );
// SQL文を記述します。
// フォームより送信されたデータを追加します。
$query = "INSERT INTO zoo SET animal_c='$animal_c', age_c='$age_c'";
// SQL文を実行します。
mysql_query( $query, $db )
or die( "SQL文の実行に失敗しましたbbbbb" );
// SQL文に使用するための文字列をエスケープする関数です。
function convSqlString( $string ){
global $db;
// SJISでは2バイト目にメタ文字\のコード(0x5c)を含む場合に、
// このコードもエスケープしてしまうので、
// EUC-JPに変換してエスケープします。
// Linuxでの実行などファイルをEUC-JPにエンコードした場合には
// コメントアウトしてください。
// $string = mb_convert_encoding( $string, "EUC-JP", "SJIS" );
// mysqli_escape_stringを使うことにより、
// 'や\などが適切にエスケープされます。
// MySQLのバージョン4.1.2未満を使用している場合は、
// 下の1行を$string = mysql_escape_string( $string );
// に変更してください。
$string = mysql_escape_string( $string );
// 再度SJISに変換して返します。
// Linuxでの実行などファイルをEUC-JPにエンコードした場合には
// コメントアウトしてください。
// $string = mb_convert_encoding( $string, "SJIS", "EUC-JP" );
return $string;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=EUC-JP">
<title>PHPサンプルスクリプト</title>
</head>
<body bgcolor=#FFFFFF>
データを追加しました。
</body>
</html>
<?
// データベースから切断します。
mysql_close( $db );
?>
■エラー内容(ブラウザ表示)
SQL文の実行に失敗しましたbbbb
でエラー構文が出てしまいます。
もしお分かりの方がいればアドバイスいただければ幸いです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
$queryの部分を
$query = "INSERT INTO zoo VALUES('" . $animal_c . "','" . $age_c . "');";
echo $query;
exit;
とかにして、
・SQLに変数がきちんとした形で入っているか
・INSERT文として成り立っているか
を確認してみたらいかがでしょうか。
大変参考になりました。
・SQLに変数がきちんとした形で入っているか
・INSERT文として成り立っているか
など確認がひとつひとつ大切なんですね。
おかげさまでできました。
しかし、実は、できなかった原因は、MYSQLへのIDログインが完全ではなかったのが理由のようです。
お騒がせしましてありがとうございました。
No.1
- 回答日時:
> INSERT INTO zoo SET animal_c='$animal_c', age_c='$age_c
INSERT INTO zoo (animal_c, age_c) values($animal_c, $age_c)
では?
INSERT文の普通の構文はこれですが?
ありがとうございます。
助かりました。今まで知らなかった構文が勉強になりました。
実際に置き換えてやってみました。
しかし残念ながらだめでした。
この時点でのエラーは、DB上でINSERTの権限がないからでしょうか?
本当にすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー3131 FROM 句の構...
-
単純ですが、意外と穴?なデー...
-
データフォームウィザードで追...
-
VBAをつかってクエリの情報を抽...
-
テキストボックスに入れた内容...
-
見られたくないファイル
-
Call to undefined method MDB2...
-
PEAR でprepareメソッドがエラーに
-
Accessのテーブルへ複数の主キ...
-
エラー3011
-
SELECT文を発行して、ACCESSよ...
-
SQL文が実行できません
-
MySQLでデータベースにデータin...
-
ResultSetインターフェイスでの...
-
エクセルVBAについて
-
JAVA SQLServerException 列名 ...
-
PHPで[]の使い方について
-
MySQLのINSERT時にたまに重複に...
-
<VB.NET>INSERT文でDBにデータ...
-
PHP+MySQLでの配列のinsert文に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー3131 FROM 句の構...
-
VBAをつかってクエリの情報を抽...
-
SQL文が実行できません
-
テキストボックスに入れた内容...
-
in 'where clause'のエラーの理由
-
エラー3011
-
SQL文の実行に失敗しました???
-
LocalのNotesメールDBをVBAで参...
-
SELECT COUNTで取得した結果の表示
-
codeigniter 複数モデルでトラ...
-
PHP(PDO)でDBの情報を完全一...
-
Accessのテーブルへ複数の主キ...
-
phpのPEARのMDB2を使って出たエ...
-
ASPでRecordCountが使用でき...
-
Call to undefined method MDB2...
-
PHP4でのSmarty派生クラスの定...
-
zend(phpフレームワーク)でトラ...
-
データフォームウィザードで追...
-
DAOでデータベースを二つ開くに...
-
SQLiteでカラムを追加
おすすめ情報