ОК после 40 лет я пытаюсь перейти на OO PHP.
Все идет хорошо, за исключением случаев, когда я делаю очень простой INSERT, тогда создаются две почти дублированные (не дублированные) строки.
Таблица состоит из автоинкремента INT id, поля VARCHAR msg и поля изображения INT по умолчанию – NULL. С каждой вставкой я получаю дубликат msg. id работает нормально.
Я боюсь, что это может быть связано с тем, как я использую PDO.
Соединение установлено как:
$pdo = new PDO("mysql:host=$hjoyjoy;dbname=$dhaphap", $usadsad, $pborbor); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->exec('SET NAMES "utf8"');
Класс Message отправляет сообщение, которое хранится методом setMessage, а затем загружается в базу данных методом storeMessage:
class Message { protected $_message='Message not set'; public $id =10; public function setMessage($mess) { $this->_message = $mess; } public function displayMessage() { return $this->_message; } //need try/catch safety sections //@@@@@@@@@@@@@@@@@@********************zxzxz public function storeMessage() { global $pdo; $sql = "INSERT message (msg) VALUES ('$this->_message')"; $s = $pdo->prepare($sql); $s->execute(); } }// end CLASS "Message". ?> <?php $test = new Message; $test->setMessage("Dumbo!!!"); $test->storeMessage(); $info=$test->displayMessage(); echo "<h2> $info </h2>"; ?>
Я смотрел на это часами, но штопал, если мог видеть, что я сделал неправильно.