sql uitvoeren in php

  • Onderwerp starter Onderwerp starter Epic
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Epic

Hoofdbeheerder
Forumleiding
Hoofdbeheerder
Lid geworden
10 jan 2002
Berichten
7.377
Besturingssysteem
openSUSE Tumbleweed
Office versie
LibreOffice
Hey,

Ik wil een vrij eenvoudige sql door php uit laten voeren, in mysql ziet dat er zo uit:
Code:
[FONT="Courier New"]mysql> [B]show table status like 'config' \G[/B]
*************************** 1. row ***************************
           Name: config
         Engine: MyISAM
        Version: 9
     Row_format: Dynamic
           Rows: 6
 Avg_row_length: 91
    Data_length: 548
Max_data_length: 4294967295
   Index_length: 3072
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2005-08-20 12:24:13
    Update_time: 2006-02-03 20:21:46
     Check_time: 2006-02-16 18:54:35
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options:
        Comment:
1 row in set (0.00 sec)

mysql>[/FONT]

Als ik nu in php de volgende code zet gaat het fout:
PHP:
<?php	
	$status = mysql_query("show table status like 'config' \G")
		or die (mysql_errno() . ": " . mysql_error());
?>

Ik krijg de melding "1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\G' at line 1"

Iemand enig idee wat er fout gaat?
 
Haal die \G voor de gein eens weg :)

Waarom had je die daar eiglijk ?
 
Zonder \G krijg je het resultaat "ouderwets" naast elkaar en niet onder elkaar en netjes uitgelijnd zoals in m'n eerste post:

Code:
[FONT="Courier New"]mysql> show table status like 'config';
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
| Name   | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time          | Collation         | Checksum | Create_options | Comment |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
| config | MyISAM |       9 | Dynamic    |    6 |             91 |         548 |      4294967295 |         3072 |         0 |           NULL | 2005-08-20 12:24:13 | 2006-02-03 20:21:46 | 2006-02-16 18:54:35 | latin1_swedish_ci |     NULL |                |         |
+--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+
1 row in set (0.00 sec)

mysql>[/FONT]

Ik kwam het trucje ergens op het www tegen en probeerde het in php toe te passen.

Misschien komt het wel doordat je bij deze sql (met \G dus) geen puntkomma moet geven en php dit standaard altijd doet?? Ik weet het niet hoor, verzin ook maar wat....:D
 
Epic zei:
Zonder \G krijg je het resultaat "ouderwets" naast elkaar en niet onder elkaar en netjes uitgelijnd zoals in m'n eerste post:
Aaahh ! :)
Misschien komt het wel doordat je bij deze sql (met \G dus) geen puntkomma moet geven en php dit standaard altijd doet?? Ik weet het niet hoor, verzin ook maar wat....:D
Dat lijkt me écht stug :D

Nee ik denk dat die \G een shell iets is dat PHP niet ondersteunt, en ook niet hoeft te ondersteunen. Als je één van de mysql_fetch_* functies gebruikt krijg je alles tenslotte al keurig netjes alles terug in een array (of object...), waardoor je zelf kan bepalen hoe je 't wil printen :)
 
Tja, in php kan het natuurlijk wel, alleen heb je altijd zo'n zooi code nodig om iets zoiets fatsoenlijk op je pagina te krijgen. Ik had gehoopt om met een simpele query php een beetje te kunnen manipuleren :p Zal wel een afwijking van mij zijn, ik ben ook sql-er geen php-er :D Waarschijnlijk heb je gelijk, het zal wel niet ondersteund worden, vraag opgelost (beantwoord) denk ik.
 
Epic zei:
Zal wel een afwijking van mij zijn, ik ben ook sql-er geen php-er :D Waarschijnlijk heb je gelijk, het zal wel niet ondersteund worden, vraag opgelost (beantwoord) denk ik.
Soms gaat iets niet helemaal zoals je wil, helaas :p
 
probeer eens \\G ?

want net als je de " zou gebruiken in een echo "<table width="20">"; dan geeft hij een error aan omdat php denkt dat hij daar moet stoppen, en zetten we er een \ voor en word het dus echo "<table width=\"20\">"; alleen dan heeft php weer een probleempje met de \ en daarom hebben ze een dubbele \\ bedacht om deze uit te voeren... (voor veel functies in ieder geval:P) so give it a try!:D
 
Laatst bewerkt:
Wel een aardige suggestie, maar heeft helaas geen effect.:confused:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan