2016-05-31 3 views
0

У меня есть 2 названия таблиц и учебное заведение. Вот мой запрос:sql работает на phpmyadmin, но не на php-скрипте

CREATE TEMPORARY TABLE 
IF NOT EXISTS temp AS (SELECT course_name, ins_name 
     FROM courses 
     where course_name='ACCA') ; 

select institution.ins_name, address, contact, website, 
email from institution join temp on institution.ins_name = temp.ins_name 

А вот мой скрипт:

<?php 
session_start(); 
include('db_connect.php'); 
$sql="CREATE TEMPORARY TABLE 
IF NOT EXISTS temp AS (SELECT course_name, ins_name 
     FROM courses 
     where course_name='ACCA') ; 

select institution.ins_name, address, contact, website, email from institution join temp on institution.ins_name = temp.ins_name"; 

$result= mysqli_query($conn, $sql) or die("MySQL error: " . mysqli_error($conn)); 

while ($row = mysqli_fetch_array($result)){ 

echo "<tr>"; 
echo "<td>" . $row['ins_name'] . "</td>"; 
echo "<td>" . $row['address'] . "</td>"; 
echo "<td>" . $row['contact'] . "</td>"; 
echo "<td>" . $row['website'] . "</td>"; 
echo "<td>" . $row['email'] . "</td>"; 

echo "</tr>"; 
} 
echo "</table>" 

?> 

Я не могу понять, в чем проблема. Ошибка, которую я получаю:

Ошибка MySQL: У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'select agency.ins_name, адрес, контакт, веб-сайт, адрес электронной почты от учреждения j' по строке 6

Что я делаю неправильно?

ответ

1

Каждый запрос должен быть выполнен отдельно. create и select две разные запросы поэтому сначала вам нужно вызвать mysqli_query для create, а затем mysqli_query для select

+0

получил это. приходилось запрашивать их отдельно. Спасибо, сэр –

0

Вам нужно псевдоним на каждой колонке:

select institution.ins_name, institution.address, institution.contact, institution.website, institution.email from institution join temp on institution.ins_name = temp.ins_name"; 
+0

Пробовал это, но все равно даю мне такую ​​же ошибку. –

2

От Multiple Statements:

MySQL optionally allows having multiple statements in one statement string. Sending multiple statements at once reduces client-server round trips but requires special handling.

Multiple statements or multi queries must be executed with mysqli_multi_query() . The individual statements of the statement string are separated by semicolon. Then, all result sets returned by the executed statements must be fetched.

В качестве альтернативы , просто запустите два запроса.

+0

спасибо, что посмотрели. –