попытка экранирования макроса php

#php #sql

#php #sql

Вопрос:

попробуйте экранировать их

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданная «временная метка» (T_STRING) в C:Program Файлы (x86)NetMakev81wwwrootscriptcaseappPong8blankindex.php в строке 1079

 sc_exec_sql("CREATE TABLE StepOneSection as
SELECT

public.pong8."Timestamp",
public.pong8."Last",
public.pong8."Trade Price",
public.pong8."Trade Volume",
public.pong8."Best Bid",
public.pong8."Bid Size",
public.pong8."Best Ask",
public.pong8."Ask Size",
public.pong8."Turnover"
FROM
Public.pong8
") ;
 

Комментарии:

1. Вместо этого использовать одинарные кавычки?

2. AFAIK, mysql по умолчанию использует обратные метки для имен полей, а не двойные кавычки.

Ответ №1:

поскольку вы используете MySQL, вы должны разделять имена своих полей обратными метками. обычно вам вообще не нужно разделять их, но поскольку имена ваших полей содержат пробелы (не делайте этого в следующий раз), разделение необходимо.

что касается других СУБД, я не уверен, но он должен вести себя аналогично. в общем, базы данных очень требовательны к тому, какие цитаты вы используете, где.

 sc_exec_sql("CREATE TABLE StepOneSection as
SELECT

public.pong8.`Timestamp`,
public.pong8.`Last`,
public.pong8.`Trade Price`,
public.pong8.`Trade Volume`,
public.pong8.`Best Bid`,
public.pong8.`Bid Size`,
public.pong8.`Best Ask`,
public.pong8.`Ask Size`,
public.pong8.`Turnover`
FROM
Public.pong8
") ;