2013-07-26 2 views
0

Я просто установил сервер PHP с помощью IIS и сервера Microsoft SQL, работающих на одной машине Windows Server 2008. Я установил драйвер SQLSRV из Microsoft на PHP, потому что я хочу использовать базу данных SQL Server в PHP.Запросы SQLSRV не работают

Подключение к экземпляру SQL Server отлично работает в коде, но когда я пытаюсь выполнить запросы, он больше не работает. Те же запросы, которые я пытаюсь запустить из PHP-кода, работают в других программах, таких как мой SQL Server Manager. Даже простые команды, такие как «USE dbname», не работают, хотя они работают с SQL Server Manager.

Это код PHP, который я использую. Когда я запускаю код, он говорит о подключении и после этой ошибки выбирает DB.

$conn = sqlsrv_connect("TRANSIP-VPS\SQLEXPRESS"); 
if($conn === false) 
    { die(FormatErrors(sqlsrv_errors())); } 
echo "Connected "; 
     $selectDB = sqlsrv_query($conn, "USE Vitare"); 
     if($selectDB === false){ 
     die("ERror selecting DB"); 
     } 

$tsql = "CREATE TABLE Persons 
(
PersonID int, 
LastName varchar(255), 
FirstName varchar(255), 
Address varchar(255), 
City varchar(255) 
)"; 
    $getProducts = sqlsrv_query($conn, $tsql); 
    if ($getProducts === false) 
     { 
     echo "Error creating table"; 
     die(FormatErrors(sqlsrv_errors())); } 
echo "stuff"; 
$row = sqlsrv_fetch_array($getProducts, SQLSRV_FETCH_ASSOC); 
echo $row['username']; 

Когда я бегу sql_srverrors() вместо печати «Ошибка выбора БД», это только дает мне слово «Массив», больше ничего, не сообщение об ошибке, ничего.

+1

ли Vitare' существует схема таблицы '? – Raptor

+0

Да, это так, оно появляется под базами данных в управлении SQL Server. – raj1v

+0

Попробуйте «USE Vitare; CREATE TABLE ...» или «CREATE TABLE Vitare.dbo.Persons ...». –

ответ

0

Попробуйте подключиться к базе данных:

$serverName = "TRANSIP-VPS\SQLEXPRESS"; 
$connectionInfo = array("Database"=>"Vitare"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 
+0

Я попробую, но я не думаю, что это сработает, потому что другие простые команды, такие как Select * FROM Vitare.dbo.users, также не работали. – raj1v

+0

Соединение связано с одной базой данных, я думаю, 'sqlsrv_query ($ conn,« USE Vitare »);' не будет работать. Вышеприведенный код подключается к базе данных. –

+0

Теперь он даже не говорит о соединении. Я просто даю мне ошибку Array снова. Так что, возможно, что-то не так с базой данных Vitare. Но это было бы странно, потому что база данных отлично работает в управлении SQL-сервером и в сценарии C#, который я написал. – raj1v

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