Не добавляется в базу данных
Братья программисты проблема такая сделал пагинациию вытащил инфу из базы но добавление почему-то не работает выдает такую ошибку
Fatal error: Uncaught Error: Call to a member function execute() on bool in /opt/lampp/htdocs/roma/db.php:20 Stack trace: #0 /opt/lampp/htdocs/roma/add_com.php(8): addComents('das', 'add') #1 {main} thrown in /opt/lampp/htdocs/roma/db.php on line 20
Надеюсь на вашу помощт братья по работе не могу понять что за ошибка))
index.php
<?php
require_once("db.php");
if($connection == false){
echo "Error!";
echo mysqli_connect_errno();
exit();
}
if (isset($_GET['page'])){
$page = $_GET['page'];
} else {
$page = 1;
}
$limit = 3;
$number = ($page * $limit) - $limit;
$res_count = mysqli_query($connection, "SELECT COUNT(*) FROM `$dbarticles` ");
$row = mysqli_fetch_row($res_count);
$total = $row[0];
$str_pag = ceil($total / $limit);
$query = mysqli_query($connection, "SELECT * FROM $dbarticles ORDER BY id DESC LIMIT $number, $limit ");
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<title>Документ без названия</title>
</head>
<body>
<form method="post" action="add_com.php">
<div class="form-group">
<label for="exampleFormControlInput1">Name</label>
<input type="name" name="name" class="form-control" id="exampleFormControlInput1" style="margin-left:15px; width:50%" placeholder="name">
</div>
<div class="form-group">
<label for="exampleFormControlTextarea1">Example textarea</label>
<textarea style="width:50%; margin-left:15px;" class="form-control" id="exampleFormControlTextarea1" rows="7" name="content"></textarea>
</div>
<button class="btn btn-dark" style="margin-left:15px; ">Send</button>
</form>
<?php
for ($i = 1; $i <=$str_pag; $i++){
echo " <a href=index.php?page=".$i.">".$i."</a> ";
}
if(mysqli_num_rows($query) == 0){
echo "There are no records!";
} else {
while($article = mysqli_fetch_assoc($query)){
?>
<div class="card mt-4" style="width: 80%; background-color:#0DA9FF";>
<div class="card-body">
<h5 class="card-title">
<?php echo $article['name']; ?> at <?php echo $article['post_date']; ?>
</h5>
<div style="color:white;">
<?php
echo htmlspecialchars($article['content']);
?>
</div>
</div>
</div>
<?php
}
}
?>
</body>
</html>
/////////////////////////////////////
page.php
<?php
require_once("db.php");
if($connection == false){
echo "Error!";
echo mysqli_connect_errno();
exit();
}
$page = $_GET['id'];
echo $page;
$query = mysqli_query($connection, "SELECT * FROM $dbarticles WHERE id='$page' ");
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Документ без названия</title>
</head>
<body>
<?php
$article = mysqli_fetch_assoc($query);
echo '<div class="art">';
echo '( '.$article['id'].' ) <a href=page.php?id='.$article['id'].'>'.$article['name'].'</a><br>';
echo $article['content'].'<br>';
echo '</div>';
?>
</body>
</html>
///////////////////////////////////////////////
add.com.php
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
require "db.php";
if(isset($_POST['content'])&&isset($_POST['name'])){
addComents( $_POST['name'], $_POST['content']);
}
}
header("Location:index.php")
?>
////////////////////////////////////////////
db.php
<?php
$host = "localhost";
$dbuser = "root";
$dbpassword = "";
$dbname = "Ors";
$dbarticles = "comments";
$connection = mysqli_connect("$host", "$dbuser", "$dbpassword", "$dbname");
function addComents( $name, $content){
global $connection;
$query = $connection->prepare("
INSERT INTO comments (id, name, content, post_date)
VALUES (NULL, :name, :content, NOW())
");
$query->execute(
array(
"name"=>$name,
"content"=>$content
)
);
}
?>
Ответы (1 шт):
При работе с базой данных в РНР следует использовать синтаксис того расширения, которое используется для подключения. Смешивать синтаксис нельзя.
Если для подключения используется PDO, то следует использовать синтаксис PDO. Здесь можно посмотреть пример запроса на вставку с помощью pdo
Если для подключения используется mysqli, то следует использовать синтаксис mysqli. Здесь можно посмотреть пример запроса на вставку с помощью mysqli