How to update my MySQL code for MySQLi?

13

I have codes that use mysql and need to update to mysqli .

I need to make two changes, these being the .php pages that insert the data into the database table and data and also the pages that display the data.

How to proceed?

Here is the code for the page that inserts data:

<body>
<?php
if(isset($_POST['enviar'])){
    $nome = mysql_real_escape_string(trim($_POST['nome']));
    $descricao = mysql_real_escape_string(trim($_POST['descricao']));
    $detalhes = mysql_real_escape_string(trim($_POST['detalhes']));

    $img = $_FILES['foto'];
    $name = $img['name'];
    $tmp = $img['tmp_name'];
    $size = $img['size'];
    $ext = end((explode('.', $name)));
    $pasta = '../img/produtos';
    $maxSize = 1024 * 1024 * 2;
    $permite = array('jpg','jpeg','png');

    if(empty($nome) && empty($descricao) && empty($name)){
        echo '<script>alert("Por favor, preencha o formulário de cadastro de produto corretamente.");</script>';
    }else if(empty($nome)){
        echo '<script>alert("Por favor, preencha o campo Nome.");</script>';
    }else if(empty($descricao)){
        echo '<script>alert("Por favor, preencha o campo Descrição.");</script>';
    }else if(empty($detalhes)){
        echo '<script>alert("Por favor, preencha o campo Detalhes.");</script>';
    }else if(empty($name)){
        echo '<script>alert("Por favor, selecione uma imagem.");</script>';
    }else if(!in_array($ext, $permite)){
        echo '<script>alert("A extensão da imagem selecionada não é suportada.");</script>';
    }else if($maxSize < $size){
        echo '<script>alert("A imagem selecionada é grande demais.");</script>';
    }else{
        $name = uniqid().'.'.$ext;
        $sql = mysql_query("INSERT INTO produtos (nome, descricao, detalhes, imagem) VALUES ('$nome', '$descricao', '$detalhes', '$name')") or die(mysql_error());
        if($sql){
            $upload = move_uploaded_file($tmp, $pasta.'/'.$name);
            if($upload){
                echo '<script>alert("Postagem salva com sucesso!");</script>';
            }else{
                echo '<script>alert("A postagem não pôde ser salva corretamente.");</script>';
            }
        }else{
                echo '<script>alert("Desculpe, ocorreu um erro.");</script>';
            }
    }
}
?>
<div id="sendform">
<h2 class="textos" style="width:100%; text-align:center; font-weight:700">Inserir Produto</h2>
<form action="" method="post" enctype="multipart/form-data">
    <a class="textos">Nome do produto:</a><br>
    <input type="text" id="nome" name="nome" maxlength="80"><br>
    <br><a class="textos">Descrição do produto:</a><br>
    <textarea type="text" id="descricao" name="descricao"></textarea>
    <br><a class="textos">Detalhes do produto:</a><br>
    <textarea type="text" id="detalhes" name="detalhes"></textarea>
    <br><a class="textos">Selecione uma imagem para o produto.:</a><br><input type="file" id="foto" name="foto"><br>
    <input type="submit" id="enviar" name="enviar" value="Enviar">
</form>
</div>
<div id="deletar_prod">
<h2 class="textos" style="width:100%; text-align:center; margin-top:50px; font-weight:700">Deletar Produto</h2>
<?php
    if (isset($_POST['apagar']) && $_POST['apagar'] == 'excluir'){
        $deleta = mysql_query("DELETE FROM produtos WHERE id = '$_POST[id]'");
        if ($deleta == '1'){
        echo '<h2 class="textos" style="width:100%; text-align:center;">Produto deletado com sucesso!</h2>';
        }else{ '<h2 class="textos" style="width:100%; text-align:center;">Erro ao deletar o produto.</h2>';
    }
}
?>

<?php
    $sql = "SELECT id, nome FROM produtos ORDER BY data DESC, id DESC";
    $resultado = mysql_query($sql)
    or die (mysql_error());
    if (mysql_num_rows($resultado) == 0)
    echo '<h2 class="textos" style="width:100%; text-align:center; margin-top:0px;">Nenhum registro de produto foi encontrado.</h2>';
?>
<form id="form1" name="form1" method="post" action="" enctype="multipart/form-data">
    <select name="id" id="id">
        <option value="-1">Selecione o produto que deseja deletar</option>
<?php
    while($linha=mysql_fetch_array($resultado)){
    $id = $linha[0];
    $nome = $linha[1];
?>
        <option value="<?php echo $id; ?>"><?php echo $nome; ?></option>
<?php
}
?>
    </select>
    <input type="hidden" name="apagar" value="excluir"/>
    <input class="botao" type="submit" name="excluir" id="excluir" value="Excluir"/>
</form>
</div>
</body>
    
asked by anonymous 22.01.2015 / 15:24

1 answer

11

In most cases, just change everything starting with mysql to mysqli :) Of course, that's not all. There are some differences in parameters and some different functions.

Have you seen the documentation ? I advise you to continue with the procedural syntax since you are accustomed and the change would be simpler. The syntax working with objects has no advantage other than code organization. Even if it really is advantage is something questionable.

<body>
<?php
if(isset($_POST['enviar'])){
    $nome = mysqli_real_escape_string($conexao, trim($_POST['nome']));
    $descricao = mysqli_real_escape_string($conexao, trim($_POST['descricao']));
    $detalhes = mysqli_real_escape_string($conexao, trim($_POST['detalhes']));

    $img = $_FILES['foto'];
    $name = $img['name'];
    $tmp = $img['tmp_name'];
    $size = $img['size'];
    $ext = end((explode('.', $name)));
    $pasta = '../img/produtos';
    $maxSize = 1024 * 1024 * 2;
    $permite = array('jpg','jpeg','png');

    if(empty($nome) && empty($descricao) && empty($name)){
        echo '<script>alert("Por favor, preencha o formulário de cadastro de produto corretamente.");</script>';
    }else if(empty($nome)){
        echo '<script>alert("Por favor, preencha o campo Nome.");</script>';
    }else if(empty($descricao)){
        echo '<script>alert("Por favor, preencha o campo Descrição.");</script>';
    }else if(empty($detalhes)){
        echo '<script>alert("Por favor, preencha o campo Detalhes.");</script>';
    }else if(empty($name)){
        echo '<script>alert("Por favor, selecione uma imagem.");</script>';
    }else if(!in_array($ext, $permite)){
        echo '<script>alert("A extensão da imagem selecionada não é suportada.");</script>';
    }else if($maxSize < $size){
        echo '<script>alert("A imagem selecionada é grande demais.");</script>';
    }else{
        $name = uniqid().'.'.$ext;
        $sql = mysqli_query($conexao, "INSERT INTO produtos (nome, descricao, detalhes, imagem) VALUES ('$nome', '$descricao', '$detalhes', '$name')") or die(mysqli_error($conexao));
        if($sql){
            $upload = move_uploaded_file($tmp, $pasta.'/'.$name);
            if($upload){
                echo '<script>alert("Postagem salva com sucesso!");</script>';
            }else{
                echo '<script>alert("A postagem não pôde ser salva corretamente.");</script>';
            }
        }else{
                echo '<script>alert("Desculpe, ocorreu um erro.");</script>';
            }
    }
}
?>
<div id="sendform">
<h2 class="textos" style="width:100%; text-align:center; font-weight:700">Inserir Produto</h2>
<form action="" method="post" enctype="multipart/form-data">
    <a class="textos">Nome do produto:</a><br>
    <input type="text" id="nome" name="nome" maxlength="80"><br>
    <br><a class="textos">Descrição do produto:</a><br>
    <textarea type="text" id="descricao" name="descricao"></textarea>
    <br><a class="textos">Detalhes do produto:</a><br>
    <textarea type="text" id="detalhes" name="detalhes"></textarea>
    <br><a class="textos">Selecione uma imagem para o produto.:</a><br><input type="file" id="foto" name="foto"><br>
    <input type="submit" id="enviar" name="enviar" value="Enviar">
</form>
</div>
<div id="deletar_prod">
<h2 class="textos" style="width:100%; text-align:center; margin-top:50px; font-weight:700">Deletar Produto</h2>
<?php
    if (isset($_POST['apagar']) && $_POST['apagar'] == 'excluir'){
        $deleta = mysqli_query($conexao, "DELETE FROM produtos WHERE id = '$_POST[id]'");
        if ($deleta == '1'){
        echo '<h2 class="textos" style="width:100%; text-align:center;">Produto deletado com sucesso!</h2>';
        }else{ '<h2 class="textos" style="width:100%; text-align:center;">Erro ao deletar o produto.</h2>';
    }
}
?>

<?php
    $sql = "SELECT id, nome FROM produtos ORDER BY data DESC, id DESC";
    $resultado = mysqli_query($conexao, $sql)
    or die (mysqli_error($conexao));
    if (mysqli_num_rows($resultado) == 0)
    echo '<h2 class="textos" style="width:100%; text-align:center; margin-top:0px;">Nenhum registro de produto foi encontrado.</h2>';
?>
<form id="form1" name="form1" method="post" action="" enctype="multipart/form-data">
    <select name="id" id="id">
        <option value="-1">Selecione o produto que deseja deletar</option>
<?php
    while($linha=mysqli_fetch_array($resultado)){
    $id = $linha[0];
    $nome = $linha[1];
?>
        <option value="<?php echo $id; ?>"><?php echo $nome; ?></option>
<?php
}
?>
    </select>
    <input type="hidden" name="apagar" value="excluir"/>
    <input class="botao" type="submit" name="excluir" id="excluir" value="Excluir"/>
</form>
</div>
</body>

Note that the functions in mysqli have a parameter for information on which connection is doing the job.

I did not test but should have no problem. In any case, I advise you to check beforehand, and especially to study the subject before venturing into it. Then you can make more radical changes, maybe take advantage of new features, but it's best to start as simple as possible.

    
22.01.2015 / 15:41