前提・実現したいこと
PHPでデータベースにあるデータを更新するシステムを作っています。
MySQLでUPDATEを実装しましたが実行した場合の処理をしているようなのですがデータベースを確認しても更新されていませんでした。
更新するデータベーステーブルの内容です
テーブル名:article
(id,url,title,text,class,date,user_id,activation_id,delete_id)
id:主キー,AUTO_INCREMENT,INT(8)
text:varchar(5000)
発生している問題・エラーメッセージ
UPDATEを実行されていない、もしくは実行しても更新されていない
エラーメッセージ
update test\r\nna\r\ntest
実行しました
Fatal error: Uncaught Error: Call to a member function close() on boolean in /edit.php:53 Stack trace: #0 {main} thrown in /edit.php on line 53
該当のソースコード
php
1<?php include('header.php'); ?> 2 3<?php 4 session_start(); 5 6 $host = "localhost"; 7 $user = "username"; 8 $pass = "password"; 9 $dbname = "dbname"; 10 11 $mysqli = new mysqli($host, $user, $pass, $dbname); 12 if ($mysqli->connect_error) { 13 error_log($mysqli->connect_error); 14 exit; 15 } 16 17 if(!isset($_SESSION['user'])) { 18 header("Location: login.php"); 19 }else if(isset($_POST['main'])){ 20 header("Location: main.php"); 21 }else if(isset($_POST['edit'])) { 22 $text = $mysqli->real_escape_string($_POST['text']); 23 ?><p><?php echo $text; ?></p><?php 24 // POSTされた情報をDBに格納する 25 $query = "UPDATE article SET text='$text' WHERE id='$id'"; 26 $result = $mysqli->query($query); 27 28 if($result) { 29 ?><p>実行しました</p><?php 30 }else{ 31 ?><p>実行出来ません</p><?php 32 } 33 header("Location: main.php"); 34 }else{ 35 // ユーザーIDからユーザー名を取り出す 36 $query = "SELECT * FROM writer WHERE user_id=".$_SESSION['user'].""; 37 $result = $mysqli->query($query); 38 if (!$result) { 39 print('クエリーが失敗しました。' . $mysqli->error); 40 $mysqli->close(); 41 exit(); 42 } 43 44 // ユーザー情報の取り出し 45 while ($row = $result->fetch_assoc()) { 46 $user_id = $row['user_id']; 47 $username = $row['username']; 48 $email = $row['email']; 49 } 50 } 51 52 // データベースの切断 53 $result->close(); 54?> 55 56 57<?php 58 $host = "localhost"; 59 $user = "username"; 60 $pass = "password"; 61 $dbname = "dbname"; 62 63 $mysqli = new mysqli($host, $user, $pass, $dbname); 64 if ($mysqli->connect_error) { 65 error_log($mysqli->connect_error); 66 exit; 67 } 68 69 70 $id = $_POST['id1']; 71 // ユーザーIDからユーザー名を取り出す 72 $query = "SELECT * FROM article WHERE id=".$id.""; 73 $result = $mysqli->query($query); 74 if (!$result) { 75 print('クエリーが失敗しました。' . $mysqli->error); 76 $mysqli->close(); 77 exit(); 78 } 79 80 // ユーザー情報の取り出し 81 while ($row = $result->fetch_assoc()) { 82 $text = $row['text']; 83 } 84 // データベースの切断 85 $result->close(); 86?> 87 <div style="border-style:solid; background-color:#f0f000; margin:5%;"> 88 <center> 89 <form method="post"> 90 <textarea cols="40" rows="20" name="text" style="font-size:30px;margin:2%;"><?php echo $text; ?></textarea><br> 91 <input type="submit" name="edit" value="保存" style="font-size:30px;margin:2%;"> 92 <input type="submit" name="main" value="メイン画面へ" style="font-size:30px;margin:2%;"> 93 </form> 94 </center> 95 </div> 96 97<?php include('footer.php'); ?>
試したこと
色々なサイトを見て、調べて、試しましたが解決しませんでした
最終手段でこのサイトに頼ることにしました
他のページでINSERT、SELECT、DELETE、UPDATE文を使用しましたがそちらは正しく実行されています
ちなみに自分のプログラミング能力は超初心者でPHP、MySQLともにしっかりと勉強していません
サイトを調べて、出来るかな程度でやっています
なので、セキュリティはガバガバです
main.phpで遷移する部分は検証時はコメントアウトして検証しています
補足情報(FW/ツールのバージョンなど)
サーバー:Xserver
PHP:7.0.30
回答2件
あなたの回答
tips
プレビュー