
phpで会員制サイトの制作を勉強しています。
データベースへはPDOで接続しています。
MySQLデータベースを使用しています。
自己紹介文のような長めの文章をデータベースのTEXT型カラムにUPDATEで保存したいです。
$stmt = $db->prepare("UPDATE member SET text=:text WHERE id=:id");
$stmt -> bindParam(':text ',$text,PDO::PARAM_STR);
$stmt -> bindParam(':id',$id,PDO::PARAM_INT);
$stmt -> execute();
というSQL文を作成し、
文字列データを保存することはできたのですが、
「"」や「'」のような記号を含めるとそれ以降の文章が消えた状態で保存されてしまいます。
例えば顔文字などで「"」や「'」のような記号を使用する場合もあると思うので、
できれば、データベースに保存したいです。
どうしたら安全に「"」や「'」が保存できるでしょうか?
ご回答、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
PDOできちんとやる限りクォーテーションが影響することはありません。
直接関係ないかもしれませんが1点気になったのは
>$stmt -> bindParam(':text ',$text,PDO::PARAM_STR);
の「:text」の後ろの空白です、もしいらなければとってください
そのうえで
print $text;
で本当に$textに正しい値がはいっているか確認してみてください
$textへの代入方法が間違っていて投入されていない可能性が高い気がします
ご回答ありがとうございます!
よく見てみたら直前のHTMLのタグに不備がありました・・・。
SQL関連のトラブルかと思い、パニクって完全に見落としていました。
空白の件、ご指摘頂きありがとうございます。
誤作動が起こらないように他のSQL文もチェックしてみます。
No.2
- 回答日時:
どうやって文章の一部が消えていることを確認されたのでしょうか。
・mysqlコマンドやMySQL Workbench等,既存のツールを使って確かめた
データの入力に間違いがある可能性が高いです。
$textをlogに出力するなどして,正しくデータが入っているかを確認してみるのがよいかと思います。
・自作のコードで確かめた
まずは,mysqlコマンド等の既存のツールを使ってデータベースの中身を直接確かめる必要があります。
その上で,正しく入っているのであれば,出力時に問題がないか確認するのがよいかと思います。
この回答への補足
ご回答ありがとうございます!
phpmyadminから保存先のデータカラムを確かめたところ、
「"」以降の文字列がなくなっていました。
selectで取得して画面上にprintしてみてもやはり「"」以降が無くなっていました。
ご回答ありがとうございます!
よく見てみたら直前のHTMLのタグに不備がありました・・・。
SQL関連のトラブルかと思い、パニクって完全に見落としていました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10分ごとに変化するプログラム...
-
請求書等のシリアル番号生成方法?
-
エクセルのデータ抽出
-
デフラグについて
-
ImageMagickのインストールにつ...
-
自動更新
-
データの一括選択
-
エクセル、同一文字の最上行の...
-
インストール済みのソフトを移...
-
Solaris8のbootdisk作成について。
-
excel セルの複写など
-
パソコンにコンポーザーをイン...
-
IISで作ったWebServerをIE9で見...
-
エクセル、シートのコピーについて
-
HPをPDFにする理由の意味がわか...
-
ビデオカードの動作について… ...
-
結果を1行に編集するSQL
-
セルの値をリストボックスに表...
-
最初のインストール日を知りたい
-
エクセルで勤怠管理をしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
『PHP』 MAMPで$_SERVER["REMOT...
-
変数名での条件分岐は可能でし...
-
データベースに"や'を保存できない
-
(int)キャストとintvalの違い
-
PHPでGDを使用しての折れ線グラ...
-
マイコンビルドエラー修正方法...
-
return
-
GETからPOSTに変更
-
htmlspecialcharsについて(セ...
-
サイトに表示する文字に\\が入...
-
不明なコマンドです("FROM")。...
-
パソコンにコンポーザーをイン...
-
オペランドが足りませんとコメ...
-
Access2010 「演算子がありませ...
-
【ExcelVBA】sheet作成時にマク...
-
Excel2010でふりがなが漢字にな...
-
エクセル/マクロ Exit Subが実...
-
VBA シートの切り替えができな...
-
エクセルの文字間スペースを入...
-
AUTOCAD 2010でdwlファイルの場...
おすすめ情報