現在phpでお問い合わせフォームを作り、入力された内容をMySQLでデータベースに追加するコードを書いて勉強しています。
データベースに入力された内容の追加がうまくいきません。いろいろ試行錯誤したのですが、何度やってもテーブルに追加されずemptyかエラーが返ってきてしまいます。
(vagrantのCentOSを使ってやっています。データベース名はcontact,テーブル名はusersです)
PHP
1コード 2 $name = $post['name']; 3 $email = $post['email']; 4 $db = new PDO("mysql:host=localhost;dbname=contact","na","12345"); 5 $st = $db->prepare("INSERT INTO users (name, email) VALUES (:name, :email)"); 6 $stmt->bindValue(':name', $name, PDO::PARAM_STR); 7 $stmt->bindValue(':email', $email, PDO::PARAM_STR); 8 9 $stmt->execute(); 10
この結果は192.168.33.1:63162 [500]: /confirm.php - Call to a member function bindValue() on null in /home/vagrant/contact_practice/handlers/confirm-handler.php on line 21
このように返ってきました。
これとは別に下のコードの方法も試したのですが、「データを登録できませんでした」と出てきてしまいました。
php
1コード 2 $name = $post['name']; 3 $email = $post['email']; 4 $con = mysql_connect('localhost', 'na', '12345'); 5if (!$con) { 6 exit('データベースに接続できませんでした。'); 7} 8 9$result = mysql_select_db('contact', $con); 10if (!$result) { 11 exit('データベースを選択できませんでした。'); 12} 13 14$result = mysql_query('SET NAMES utf8', $con); 15if (!$result) { 16 exit('文字コードを指定できませんでした。'); 17} 18 19$result = mysql_query("INSERT INTO users(name, email) VALUES('$name', '$email')", $con); 20if (!$result) { 21 exit('データを登録できませんでした。'); 22}
$conのサーバーはlocalhostであっているのでしょうか?192.168.33.10にするべきでしょうか?
どうしたらテーブルに追加できるか教えてください。
回答1件
あなたの回答
tips
プレビュー