2016-04-30 32 views
2
$result = pg_query(Postgres::getInstance(), "SELECT 
date_start, 
date_end, 
cnt_hands, 
cnt_hands_won, 
amt_won, 
id_session, 
id_player, 
amt_won 
FROM 
cash_table_session_summary 
WHERE 
date_start = '2016-04-27 07:20:47'"); 

Das funktioniert perfekt.Wie wird die Variable in einer Abfrage richtig verwendet? postgresql

echo $sessionStart; 
$result = pg_query(Postgres::getInstance(), "SELECT 
date_start, 
date_end, 
cnt_hands, 
cnt_hands_won, 
amt_won, 
id_session, 
id_player, 
amt_won 
FROM 
cash_table_session_summary 
WHERE 
date_start = $sessionStart"); 

Dies wirft dies:

2016-04-27 07:20:47 Warning: pg_query(): Query failed: ERROR: syntax error at or near "07" LINE 13: ... date_start = 2016-04-27 07:20:47^ in /home/haris/public_html/project/DAL_General.php on line 102

Ist Kolon ein Problem? Muss ich irgendwie entkommen? Wenn das so ist, wie? Ich habe google, aber nichts über entkommene Doppelpunkte gefunden.

+2

Verwenden Sie es als 'DATE_START = '$ session'" 'in einfache Anführungszeichen – Saty

+1

Dank! Ich bin Neu bei PHP, und es ist mir gar nicht aufgefallen, dass das möglich ist. Kannst du eine Antwort geben, damit ich es als richtig bezeichnen kann? – user3134759

Antwort

1

Ihr Datum muss in Anführungszeichen stehen. Sie müssen

FROM 
cash_table_session_summary 
WHERE 
date_start = $sessionStart 

Um

FROM 
cash_table_session_summary 
WHERE 
date_start = '$sessionStart'// add quotes here 

Weitere Änderungen zu verstehen, über Zitate überprüfen When to use single quotes, double quotes, and backticks in MySQL

1

hatte ich das gleiche Problem, wenn ich Datenbank-Arbeit wurde das Lernen, aber Sie müssen die Abfrage in "" gemacht werden ‚s - dann, wenn eine Variable oder Daten verweisen Sie es in ' setzen müssen‘ s, Beispiel:

$test_query = type_of_connection_query("SELECT * FROM users WHERE id = '1'"); 

Das würde nicht funktionieren wie:

$text_query = type_of_connection_query("SELECT * FROM users WHERE id = 1"); 

Und natürlich gibt es einige Male, wenn Sie keine Anführungszeichen benötigen, wie Referenzierung LIMIT ‚s

$text_query = type_of_connection_query("SELECT * FROM users WHERE id = '1' LIMIT 1"); 
Verwandte Themen