2012-04-20 3 views
0

В основном то, что я пытаюсь сделать, это запустить sql-оператор, который вставляет отдельные части результатов запроса в недавно созданную таблицу. Я тестировал его с MySQL и запустил эту линиюПочему эта строка mysql не будет работать с моим php?

INSERT INTO searched(imagetargetpath, gamename, gamedirectory, `like`, dislike) 
SELECT imagetargetpath, gamename, gamedirectory, `like`, dislike 
FROM boardgamelist 
WHERE gamename LIKE '%david%' 

, успешно управлял , но когда я ставлю ту же строку в PHP от того, что я получил от PHPMYADMIN в mysql_query, кажется, не запускать

$sql = "INSERT INTO searched(imagetargetpath, gamename, gamedirectory, 
`like`, dislike) \n" 
. "SELECT imagetargetpath, gamename, gamedirectory, `like`, dislike\n" 
. "FROM boardgamelist\n" 
. "WHERE gamename LIKE \'%david%\'"; 
    //copies query 
    $copy_query = mysql_query($sql); 

ранее в моем коде, однако у меня есть команда mysql (подтвержденная для работы), которая создает таблицу «search» , что я забываю делать с командой mysql, которая не позволяет ей запускаться?

+3

Избавиться от всех этих ненужных сцеплений и '\ n'. Вам не нужно избегать одиночных кавычек вокруг '% david%' с обратными косыми чертами. –

+1

Не уверен, что это проблема или нет, но я заметил, что у вас есть символы эвакуации на «близком» давиде, но не рядом «как». –

+1

Вся голая строка SQL, которую вы имеете наверху, может стать двустрочной строкой PHP без ЛЮБОГО специального экранирования или конкатенации в linebreaks. –

ответ

3

Вы забыли пробела в вашей линии ломает:

. "SELECT imagetargetpath, gamename, gamedirectory, `like`, dislike\n" 
                    ^---here 
. "FROM boardgamelist\n" 
        ^---here 

Это было бы сделать окончательную строка запроса будет:

... dislikeFROM boargamelistWHERE 

Если у вас даже скелет обработки ошибок, например

$copy_query = mysql_query($sql) or die(msyql_error()); 
           ^^^^^^^^^^^^^^^^^^^^^^ 

Вы были бы проинформированы об ошибках синтаксиса.

+0

это очень тупой брат, но именно то, что мне нужно в ответ. теперь я понимаю, почему моя программа не работает, спасибо снова –

2

попробовать это

$sql = "INSERT INTO searched(imagetargetpath, gamename, gamedirectory, `like`, dislike) " 
. "SELECT imagetargetpath, gamename, gamedirectory, `like`, dislike " 
. "FROM boardgamelist WHERE gamename LIKE '%david%'"; 
+1

Вам нужно пространство между 'dislike' и' FROM' –

+0

, о котором я только что упомянул это;) –

Смежные вопросы