inster/select querys in PHP...

Status
Niet open voor verdere reacties.

SparkyRih

Gebruiker
Lid geworden
7 okt 2008
Berichten
37
Ik kan geen gegevens in mijn database voegen via PHP met deze query:

$result = mysql_query("INSERT INTO news (title, dtime, text1, text2)
VALUES ('$title',NOW(),'$text1','$text2')",$connect) or die("Kan niet invoegen...");

Ik krijg steeds mijn error na de: or die...
Als ik de query (tussen "...") handmatig invoer op de database werkt het wel zoals het hoort...

In een ander script heb ik het zelfde probleem, maar dan met de SELECT query...
 
Maak eens van or die("Kan niet toevoegen…"); dit or die(mysql_error());

Dan krijg je een betere foutmelding ;)
 
Niets, geen sql error... gewoon lege pagina...
or die klopt...
 
Als de query niet goed wordt uitgevoerd dan moet dit een foutmelding opleveren...

PHP:
$result = mysql_query("INSERT INTO news (title, dtime, text1, text2)
VALUES ('$title',NOW(),'$text1','$text2')",$connect) or die(mysql_error());

Hij het ongetwijfeld zo doen:
PHP:
$result = mysql_query("INSERT INTO news (title, dtime, text1, text2)
VALUES ('$title',NOW(),'$text1','$text2')") or die(mysql_error());
 
volgens mij niet goed geleze met die haakjes:s

Access denied for user 'root'@'localhost' (using password: NO)
 
Blijkbaar zijn je inloggegevens niet correct :)
 
boven in het script zit een connect.php met de juiste gegevens...

Als ik deze php los draai maakt hij gewoon connectie.... tenminste hij geeft geen errors

<?php
$dbhost = 'localhost';
$dbuser = 'goed';
$dbpass = 'goed';
$dbname = 'is ook goed ingevuld';

$connect = mysql_connect($dbhost, $dbuser, $dbpass) or die('Hoste, Gebruikersnaam of Password is fout');
mysql_select_db($dbname, $connect) or die("Kan geen verbinding maken met '$db_name'.");
?>
 
Hoe ziet je volledige bestand er uit dan? (Degene waarin je die query uitvoert)
 
PHP:
<?php

include("connect.php") or die("Kan niet verbinden");

if($_POST['submit']) 
{
$title = $_POST['title'];
$text1 = $_POST['text1'];
$text2 = $_POST['text2'];


if(!$title){ //this means If the title is really empty.
echo "Error: News title is a required field. Please fill it.";
exit() or die("Fout bij beëindigen script"); //exit the script and don't do anything else.
}
$result = mysql_query("INSERT INTO news (title, dtime, text1, text2) 
VALUES ('$title',NOW(),'$text1','$text2')") or die(mysql_error());

echo "<b>Thank you! News added Successfully!<br>You'll be redirected to Home Page after (4) Seconds";
echo "<meta http-equiv=Refresh content=4;url=index.php>";
}
else
{

?>
<br>
<h3>::Add News</h3>

<form method="post" action="<?php echo $PHP_SELF ?>">
Title: <input name="title" size="40" maxlength="255">
<br>
Text1: <textarea name="text1" rows="7" cols="30"></textarea>
<br>
Text2: <textarea name="text2" rows="7" cols="30"></textarea>
<br>
<input type="submit" name="submit" value="Add News">
</form>
<?
}
?>
 
Ik zie zo gauw niets vreemds alhoewel ik mijn vraagtekens hierbij heb:
PHP:
include("connect.php") or die("Kan niet verbinden");
Geen idee of die or die() uberhaupt werkt.

Voor het debuggen probeer dit eens:
PHP:
$query = "INSERT INTO news (title, dtime, text1, text2) 
VALUES ('$title',NOW(),'$text1','$text2')";
$result = mysql_query($query);
if(!$result) {
  echo 'Er is een fout opgetreden in de volgende query:<br />
  <b>'. $query .'</b><br />
  MySQL zegt: '. mysql_error();
} else {
  echo "<b>Thank you! News added Successfully!<br>You'll be redirected to Home Page after (4) Seconds";
  echo "<meta http-equiv=Refresh content=4;url=index.php>";
}

Zou krijg je ook te zien welke query naar de database gaat en of dat klopt.
 
Als ik dat script vervang kan hij de pagina nog niet eens laden... dan kom ik nog niet eens bij de form...
 
Dan heb je het niet juist overgenomen.

PHP:
<?php

include("connect.php") or die("Kan niet verbinden");

if($_POST['submit']) {
  $title = $_POST['title'];
  $text1 = $_POST['text1'];
  $text2 = $_POST['text2'];

  if(!$title){ //this means If the title is really empty.
    echo "Error: News title is a required field. Please fill it.";
    exit() or die("Fout bij beëindigen script"); //exit the script and don't do anything else.
  }
  $query = "INSERT INTO news (title, dtime, text1, text2) VALUES ('$title',NOW(),'$text1','$text2')";
  $result = mysql_query($query);
  if(!$result) {
    echo 'Er is een fout opgetreden in de volgende query:<br />
    <b>'. $query .'</b><br />
    MySQL zegt: '. mysql_error();
  } else {
    echo "<b>Thank you! News added Successfully!<br>You'll be redirected to Home Page after (4) Seconds";
    echo "<meta http-equiv=Refresh content=4;url=index.php>";
  }
} else {

?>
<br>
<h3>::Add News</h3>

<form method="post" action="<?php echo $PHP_SELF ?>">
Title: <input name="title" size="40" maxlength="255">
<br>
Text1: <textarea name="text1" rows="7" cols="30"></textarea>
<br>
Text2: <textarea name="text2" rows="7" cols="30"></textarea>
<br>
<input type="submit" name="submit" value="Add News">
</form>
<?
}
?>
Zo zou het er uit moeten zien.
 
include("") or die("") is niet echt goede coding..

Als je anders toch die doet, kan je beter require('filename') gebruiken. Nog beter is om met exceptions te werken, of met filetesting
PHP:
if (!is_file("file")) {
        echo "file not found";
} else {
        include("")
}

Maar in het geval van een connect/config-file zou ik steeds require_once() gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan