Раньше я использовал Старый MySQL для обновления, но теперь я пытаюсь изменить общее число на PDO по рекомендации друзей.
Однако при настройке формы для обновления информации о пользователях мне сложно.
Я использую этот код:
public function runQuery($sql) { $aboutMe = $this->conn->prepare($sql); return $aboutMe; } class Database { private $host = "localhost"; private $db_name = "..."; private $username = "..."; private $password = "..."; public $conn; public function dbConnection() { $this->conn = null; try { $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password); $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $exception) { echo "Connection error: " . $exception->getMessage(); } return $this->conn; } } if(isset($_POST['update'])) { $utentang = strip_tags($_POST['txt_tentang']); try { $aboutMe = $auth_user->runQuery("UPDATE users SET tentang=:ttg where id=:id"); $aboutMe->execute(array(':ttg'=>$utentang, ':id'=>$id)); $aboutMe->bindValue(':ttg', $utentang); $tentangSaya=$aboutMe->fetch(PDO::FETCH_ASSOC); } catch(PDOException $e) { echo $e->getMessage(); } };
HTML
<form method="post"> <div class="center"> <h2>Your About</h2> <p><textarea name="txt_tentang" id="tentang"></textarea></p> <input id="button" type="submit" value="Simpan" name="update"/> </div> </form>
Вышеприведенный код не запускается. Что не так? Версия PHP 5.5
Что не так?
Честно говоря, почти все. От структуры класса до идеи получения результата запроса обновления .
Кажется, вы используете очень ненадежный учебник для изучения PDO. Позвольте мне предложить один, который я написал, (Единственный правильный) учебник PDO , из которого вы легко узнаете правильный путь.
Вот ваш исправленный код обновления:
if(isset($_POST['update'])) { $utentang = strip_tags($_POST['txt_tentang']); $stmt = $auth_user->runQuery("UPDATE users SET tentang=:ttg where id=:id"); $stmt->execute(array(':ttg'=>$utentang, ':id'=>$id)); }
Обратите внимание, что вы не должны привязываться, извлекать или улавливать здесь.