PHP用のスクリプトをWebページの管理用に使用しています。アイテム登録を行うので、すべてのパラメータを取得してスクリプトに送信してINSERTを作成しますデータベース(mysql)。ここに私のコードがあります:PHPからmysql insertを使用する際にトラブルが発生する
//Getting the params
$title = $_POST["title"];
$date = $_POST["date"];
$hour = $_POST["hour"];
$description = $_POST["description"];
$link = $_POST["link"];
$speaker = $_POST["speaker"];
$site = $_POST["site"];
$file = $_POST["file"];
//Link and File are optional, so I'll be using NULL instead if they're empty
$link = !empty($link) ? ("'".$link."'") : ("'". NULL ."'");
$file = !empty($file) ? ("'".$file."'") : ("'". NULL ."'");
//Now I'm ready to build the query
$query = "INSERT INTO ".$type;
$query = $query . "(title,data,hour,description,link,speaker,site,file)";
$query = $query . "VALUES (";
$query = $query . "'" .$title."'";
$query = $query . ",'".$date."'";
$query = $query . ",'".$hour."'";
$query = $query . ",'".$description."'";
$query = $query . ",".$link;
$query = $query . ",'".$speaker."'";
$query = $query . ",'".$site."'";
$query = $query . ",".$file.")";
//Finally, I'll be sending the INSERT as a query using:
$result = mysql_query($query);
if(!$result)
echo "SQL Error"
そして、私はいつもエラーの文章の中に入っています。 同じWebページ上の他のスクリプトに他のスクリプトを挿入していますが、うまく動作しますが、これはそれらを模倣しています。私がチェックした:
- にmysql_connect()およびmysql_select_db()OKです、私が使用し
- データベースのユーザーがINSERT
- データベース接続を行うための助成金(SELECTクエリを使用してチェック)
何かヒントをいただければ幸いです。
[SOLVED] 文字列がエスケープされていないため、引用符がクエリを破っていました。したがって、この種の問題を引き続き発行し、廃止予定のmysql _ APIを使用している場合は、 mysql_escape_string メソッド(チェックEscaping single quote in PHP when inserting into MySQL)が必要になることがあります。
テーブルの構造だけでなく、形式 – user1234
**のコードを入力してください。停止**には、廃止予定の「mysql_」APIを使用してください。 mysqli_'または 'PDO'を用意してください。 – Jens
mysql_error()関数を呼び出して、エラーの内容を調べてください。 – Jens