php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.08.2009, 15:15  
Neuer Benutzer
 
Registriert seit: 26.08.2009
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Guni befindet sich auf einem aufstrebenden Ast
Standard Wieso fuehrt MySQLi keine Queries aus die mit Mysql gehen?

Hallo Leute,

ich komm einfach nicht weiter.
In meiner php Datei aufm Server steht folgendes:
PHP-Code:
<?php
$link 
mysqli_connect("localhost""bla""bla""DB");

/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"Delete From TABLE backend.cognos_data_tmp");

/* Prepare an insert statement */
$query "Insert INTO backend.cognos_data_tmp Select * From backend.cognos_data";
$stmt mysqli_prepare($link$query);


/* Execute the statement */
mysqli_stmt_execute($stmt);

/* close statement */
mysqli_stmt_close($stmt);

/* close connection */
mysqli_close($link);
?>
Sieht meiner Meinung nach recht unspektakulaer aus. Aber es passiert ein NICHTS.
Verwende ich die gleichen SQL-Befehle(dann nur einer pro php-Datei) mit mysql dann geht die sache.
Da ich aber mehrere Queries auf einmal ausfuehren muss brauch ich mysqli.
Was mach ich denn falsch???

Hoffe ihr koennt mir helfen.

Gruss

Geändert von Guni (26.08.2009 um 16:00 Uhr).
Guni ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.08.2009, 15:30  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo und Willkommen,

bitte ändere deinen Threadtitel. Warum? Wie? (Bitte aussagekräftige Threadtitel verwenden)

Zitat:
Dinge die definitiv nicht in den Titel gehören[...]
* Bin verzeifelt und andere Gemütslagen (bin euphorisch, bin müde, bin doof)[...]
Asipak ist offline  
Alt 26.08.2009, 16:01  
Neuer Benutzer
 
Registriert seit: 26.08.2009
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Guni befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Asipak Beitrag anzeigen
Hallo und Willkommen,

bitte ändere deinen Threadtitel. Warum? Wie? (Bitte aussagekräftige Threadtitel verwenden)
Sorry, hab den Paragraph uebersehen
Guni ist offline  
Alt 26.08.2009, 17:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Verwende ich die gleichen SQL-Befehle(dann nur einer pro php-Datei) mit mysql dann geht die sache.
Da ich aber mehrere Queries auf einmal ausfuehren muss brauch ich mysqli.
Da hast Du was komplett falsch verstanden. Es ist nur ein Statement pro Anweisung (mysql_query) erlaubt. Klar kannst Du mehrere Queries nacheinander in einem Script absetzen.

Mein Kandidat wäre dieser:
Code:
Delete From TABLE backend.cognos_data_tmp
Warum bist Du denn sicher, dass einzeln alles ausgeführt wurde?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 26.08.2009, 17:47  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

das problem liegt meines wissens nach daran dass du das ganze als prepared statement machen willst, was 1) nicht wirklich sinn macht wenn man keine werte binden will 2) prepared statements noch nicht alles können was sql kann.

nimm einfach PHP: mysqli::query - Manual dann solltest du dein query auch ausführen können
robo47 ist offline  
Alt 26.08.2009, 20:41  
Neuer Benutzer
 
Registriert seit: 26.08.2009
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Guni befindet sich auf einem aufstrebenden Ast
Standard

Danke fuer die Tipps, Jungs!

Zitat:
das problem liegt meines wissens nach daran dass du das ganze als prepared statement machen willst, was 1) nicht wirklich sinn macht wenn man keine werte binden will 2) prepared statements noch nicht alles können was sql kann.
Werte moechte ich schon aus Javascript uebergeben. Hab mein Code nochmal uerarbeitet und hol mir die Variablen nun mit get und fueg die einfach in den SQL-String ein.
Die URL fuer den php-Aufruf aus JavaScript ist:
Code:
var url="creTblTmpCog.php";
url=url+"?deal="+a +"&ro="+b;
Zitat:
Da hast Du was komplett falsch verstanden. Es ist nur ein Statement pro Anweisung (mysql_query) erlaubt. Klar kannst Du mehrere Queries nacheinander in einem Script absetzen.
mysql_query oder mysqli_query?

Habs jetzt mal so gemacht:
PHP-Code:
<?php
$link 
mysqli_connect("localhost""bla""bla""T3");

/*get Variables from JS*/
$deal=$_get["deal"];
$ro=$_get["ro"];


/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"Delete From backend.cognos_data_tmp");


mysqli_query($link"Insert INTO backend.cognos_data_tmp Select * From backend.cognos_data Where backend.cognos_data.Dealer = '".$a".' And backend.cognos_data.RO = '".$b."' ");



/* close connection */
mysqli_close($link);
?>
Tut sich trotzdem immer noch nix. Weder delete noch insert
Guni ist offline  
Alt 26.08.2009, 21:03  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

mysql_query.

Bitte setze erstmal das Error reporting!

Da ist ein Fehler:

PHP-Code:
'".$a".' 
und $a und $b sind auch nicht definiert.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (26.08.2009 um 21:07 Uhr).
nikosch ist gerade online  
Alt 26.08.2009, 22:12  
ak5
Benutzer
 
Registriert seit: 26.08.2009
Beiträge: 41
PHP-Kenntnisse:
Fortgeschritten
ak5 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Guni Beitrag anzeigen
Danke fuer die Tipps, Jungs!


Werte moechte ich schon aus Javascript uebergeben. Hab mein Code nochmal uerarbeitet und hol mir die Variablen nun mit get und fueg die einfach in den SQL-String ein.
Oha! Bitte lies Dir mal schnell was zum Thema SQL-Injections durch! Das ist sehr wichtig..

Dateinamen wie "creTblTmpCog.php" sollten übrigens nicht als "Passwort" verwendet werden. Setze stattdessen auf echte Überprüfung eines Kennwortes und Sessions.

Gruß


PS: nicht so gravierend ist die Ursache dafür, dass nichts "passiert". PHP kennt $_get nicht. Lediglich $_GET ist bekannt. Insofern ist deine WHERE-Bedingung fehlerhaft.. Es hilft ungemein, sich wärend des Entwickelns Fehlermeldungen ausgeben zu lassen.. mysql_error z.B..


Zitat:
Zitat von Guni Beitrag anzeigen
Die URL fuer den php-Aufruf aus JavaScript ist:
Code:
var url="creTblTmpCog.php";
url=url+"?deal="+a +"&ro="+b;

mysql_query oder mysqli_query?

Habs jetzt mal so gemacht:
PHP-Code:
<?php
$link 
mysqli_connect("localhost""bla""bla""T3");

/*get Variables from JS*/
$deal=$_get["deal"];
$ro=$_get["ro"];


/* check connection */
if (mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"Delete From backend.cognos_data_tmp");


mysqli_query($link"Insert INTO backend.cognos_data_tmp Select * From backend.cognos_data Where backend.cognos_data.Dealer = '".$a".' And backend.cognos_data.RO = '".$b."' ");



/* close connection */
mysqli_close($link);
?>
Tut sich trotzdem immer noch nix. Weder delete noch insert
ak5 ist offline  
Alt 27.08.2009, 01:00  
Neuer Benutzer
 
Registriert seit: 26.08.2009
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Guni befindet sich auf einem aufstrebenden Ast
Standard

Soooo, ich habs geschaft.
Hoffe das is ne einigermassen gute Variante.

PHP-Code:
<?php



/*get Variables from JS*/
$deal=$_GET["deal"];
$ro=$_GET["ro"];
$ln=$_GET["ln"];

$a "'$deal'";
$b "'$ro'";
$c "'$ln'";

$con mysql_connect('localhost''bla''bla''bla');
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }



mysql_query('Delete From backend.`cognos_data_tmp`');


mysql_query('Insert INTO backend.`cognos_data_tmp` Select * From backend.`cognos_data` Where backend.`cognos_data`.`DealerID` = '.$a.' And backend.`cognos_data`.`RO` = '.$b.' And backend.`cognos_data`.`Line` = '.$c.'');





/* close connection */
mysql_close($com);
?>
Guni ist offline  
Alt 27.08.2009, 01:04  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Jetzt fehl noch die gesamte Parameterabsicherung. mysql_real_escape
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQLi und Prepared Statements #Avedo Datenbanken 5 24.03.2010 17:39
MySQLi: bind_param & LIKE snatch-ic Datenbanken 3 22.12.2009 23:09
Schützt mysqli vor SQL-Injections? snatch-ic Datenbanken 6 08.08.2009 15:49
[Erledigt] Dropdown Menü dynamisch füllen (MySQLi) Nicon PHP Tipps 2009 1 24.07.2009 00:59
problem bei klasse mit mysqli mad PHP Tipps 2009 10 08.07.2009 03:31
mysqli in mysql umändern marcoz PHP Tipps 2009 6 26.06.2009 17:31
bei mysqli $db->close();? japu PHP Tipps 2009 6 23.06.2009 22:32
MySQLi - mehrere Queries AndreeThe2nd PHP Tipps 2009 1 13.05.2009 20:24
MySQLi Probleme :( ViperNeo PHP Tipps 2009 3 03.04.2009 01:44
mysqli ersetzen schlurpsel Datenbanken 4 23.11.2008 19:40
PHP5 -> MySQLi erben snatch-ic PHP Tipps 2007 1 08.02.2007 18:05
mysqli als Objekt CC84 PHP-Fortgeschrittene 31 11.05.2006 20:39
MySQL vs. MySQLi Shade PHP Tipps 2007 4 05.11.2005 15:22
Wie verwende ich mysqli? bicpi PHP Tipps 2005-2 5 03.08.2005 22:54
Kein mysqli Objekt möglich?! Datenbanken 8 09.06.2005 18:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql server fuehrt statement nicht aus mysqli prepare, \php-aufruf aus javascript\, mysqli befehle, mysql und mysqli, mysqli one query, mysql_query mysqli_query, mysqli 2 sql abfragen hintereinander, mysqli query anzahl sql befehle, mysqli two inserts one query

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum