mysqli_real_escape_string() expects parameter 1 to be mysqli

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Sanne Zuidema

Sanne Zuidema

05/05/2014 12:49:00
Quote Anchor link
Ik ben bezig met een cms systeem te bouwen en wil een update query uitvoeren. ik heb een formulier gemaakt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

                $query
=$db->prepare('SELECT *  FROM homepage where id<:id;', array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
                $query->execute(array(':id' => 50));
                while($row = $query->fetch(PDO::FETCH_ASSOC))
                {

                    echo "<form action ='php/zusa.php' method='POST'>
                    <input type='hidden' name='id' value='"
.$row['id']."'>
                            <textarea name='text'>"
.$row['text']."</textarea><br/>
                            <input type='submit' value='Bewerk'></form>"
;
                    //echo $row['text'];
                }
                $query=null;

                ?>

en ik wilde de informatie in een ander script uitlezen met de $_POST functie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
php $text = mysqli_real_escape_string($db, trim($_POST["text"]));

echo $text;
?>

Als ik de mysqli_real_escape_string weghaalt toont hij de tekst die ik wil aanpassen,maar zet ik de mysqli_real_escape_string erin dan geeft hij de foutmelding:
Quote:
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, object given in F:\UwAmp\www\untame_phplogin_demo\admin\php\zusa.php


Ik maak de website op een lokale server op mijn computer: UwAmp en ik heb hierin al vaker update query's gemaakt en deze werkte wel
 
PHP hulp

PHP hulp

28/11/2024 04:49:50
 
- Ariën  -
Beheerder

- Ariën -

05/05/2014 12:56:38
Quote Anchor link
Als je het wilt uitlezen moet je niet escapen. verder gebruik je al 'prepared statements', dus dan is escapen al overbodig.
 
Pipo Clown

Pipo Clown

05/05/2014 13:00:08
Quote Anchor link
Misschien kijk ik er overheen maar ik zie helemaal geen update-query, alleen een select.
 
Sanne Zuidema

Sanne Zuidema

05/05/2014 13:10:20
Quote Anchor link
ik was nog niet toegekomen aan de update query, ik wilde eerst testen of er een resultaat uitkwam en daar krijg ik een error
 
- Ariën  -
Beheerder

- Ariën -

05/05/2014 13:28:39
Quote Anchor link
Sanne Zuidema op 05/05/2014 13:10:20:
ik was nog niet toegekomen aan de update query, ik wilde eerst testen of er een resultaat uitkwam en daar krijg ik een error

En die error wil je niet delen?
 
Ivo P

Ivo P

05/05/2014 13:42:32
Quote Anchor link
gezien regel 3 van het eerste script is $db een object. (pdo waarschijnlijk, maar in elk geval een object)

Dan je mysqli_real_escape_string()

Daar gebruik je $db, maar dat hoort een verbinding naar de database te zijn (van het type mysqli).
Dat zit wel ergens in je object $db, maar dat IS het niet.

Meng niet mysqli procedurele stijl en de oop manier door elkaar.

@Aar: zie topic titel voor de foutmelding
 
Sanne Zuidema

Sanne Zuidema

05/05/2014 14:07:43
Quote Anchor link
hieronder mijn conf bestand waarmee ik verbinding maak met mijn database:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$username
= "xxxxx";
    $password = "xxxxx";
    $host = "xxxxx";
    $dbname = "xxxx";
    
    $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
    try { $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); }
    catch(PDOException $ex){ die("Failed to connect to the database: " . $ex->getMessage());}
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    header('Content-Type: text/html; charset=utf-8');
    session_start();

?>
 
Ivo P

Ivo P

05/05/2014 14:33:40
Quote Anchor link
precies":

$db = new PDO(..)

en dus niet

$db = mysqli_connect(.....);



Niet dat $db = new PDO() fout is, maar dat is niet wat je nodig hebt.
Aan de andere kant: je hebt dat hele mysqli_real_escape_string() niet nodig, aangezien je met pdo werkt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.