*bump*

Kan niemand me meer helpen?
* Bumpen mag pas nu 24 uur *
Ok.. Sorry. Maar kan niemand me helpen?

Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in /home/www/tweemaster.awardspace.com/verkoopscript2.php on line 15


Waarschijnlijk heb je bij mysql_real_escape_string per ongeluk $values opgegeven in plaats van $value. Als dat niet zo is, moet je nog even aan de bel trekken, dan weet ik nog een andere oplossing voor je.
Oh ja, en je INSERT query hoort er zo uit te zien:
<?php
$sql = "
INSERT INTO nummers
SET
nummer = '" . $values['nummer'] . "',
prijs = " . $values['nummer'];
?>
De query van Jan is 1 van de mogelijkheden die MySQL toestaat, maar het is zeker geen SQL-standaard. Werk je, of wil je werken, met andere databases, gebruik dan de standaard:
<?php
$sql = "
INSERT INTO
nummers(
nummer,
prijs
)
VALUES(
'" . $values['nummer'] . "',
" . $values['nummer'] . "
)";
?>
Dit werkt in (vrijwel) alle databases.
En, mocht je bij mysql_real_escape_string wél keurig $value hebben opgegeven als argument, verander mijn vorige voorbeeld dan in:
<?PHP
$user="";
$host="";
$password="";
$database="";
$connection = mysql_connect ($host, $user, $password)
or die ("Kon geen verbinding maken");
$db = mysql_select_db($database, $connection)
or die ("Kon database niet selecteren");

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$values = array ();
foreach($_POST as $key => $value) {
if (!is_array ($value) {
$values[$key] = mysql_real_escape_string ($value);
if (!empty ($values['nummer']) && !empty ($values['prijs'])) {
// ik ga er van uit dat prijs GEEN string is, dus geen enkele quotes
$sql = "
INSERT INTO nummer
SET
nummer = '" . $values['nummer'] . "',
prijs = " . $values['nummer'];
if (!mysql_query ($sql)) {
trigger_error (mysql_error ());
}
}
}
}
}
?>
Nu geeft ie weer :

Parse error: parse error, unexpected '{' in /home/www/tweemaster.awardspace.com/verkoopscript2.php on line 16

Dit is het script:

<?PHP

    $user="";
    $host="";
    $password="";
    $database="";
    $connection = mysql_connect ($host, $user, $password)
                or die ("Kon geen verbinding maken");
    $db = mysql_select_db($database, $connection)
                or die ("Kon database niet selecteren");


    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $values = array ();
        foreach($_POST as $key => $value) {
            if (!is_array ($value) {
                $values[$key] = mysql_real_escape_string ($value);
                if (!empty ($values['nummer']) && !empty ($values['prijs'])) {
                    // ik ga er van uit dat prijs GEEN string is, dus geen enkele quotes
                    $sql = "
                        INSERT INTO nummer
                        SET 
							id = '',
                            nummer = '" . $values['nummer'] . "',
                            prijs = " . $values['nummer'];
                    if (!mysql_query ($sql)) {
                        trigger_error (mysql_error ());
                    }
                }
            }
        }
    }
?> 

if (!is_array ($value) {

moet zijn

if (!is_array ($value)) {
Hij heeft nu geen error meer. Bedankt daarvoor. Maar hij voert het ook niet in in de db...

Wat een rot script -.- :P

Weet iemand daar de oplossing op?

Reageren