2014-09-03 3 views
0

Здравствуйте, я пытаюсь вставить данные в MSSQL с помощью PHP. Я много раз пытался выяснить, в чем проблема, но я, похоже, не нашел ее. Есть ли что-то, что не получается или нет?Вставить данные в СУБД MSSQL с помощью PHP

<?php 
//pull form fields into php variables 
$no = $_POST['no']; 
$name= $_POST['name']; 
$date = $_POST['date']; 
$leave = $_POST['leave']; 
$days= $_POST['days']; 
$empno= $_POST['empno']; 

//connect to sql 
$dbc = mssql_connect('Server-PC','user','password','database')or die('Error connecting to 
     the SQL Server database.'); 

// Input into staff database 
    $query = "INSERT INTO dbo.[CAGD$Leave Plan] ([No_],[Employee No_],[Employee Name], 
[Leave Name], [Start Date],[Leave Days],Satus) VALUES 
('$no','$name','$leave','$date','days','empno')"; 
$r esult = mssql_query($query,$dbc)or die('Error querying MSSQL database'); 

//close to sql 
mssql_close($dbc); 

echo $name . 'Your submission has been received<br />'; 
echo 'If you need change this request please contact your HR Manager<br />'; 
echo 'Thank you <br />'; 
echo 'HR Manager'; 
?> 

Я получаю сообщение об ошибке: Внимание: mssql_query() [function.mssql-запрос]: сообщение: Недопустимое имя объекта 'dbo.CAGD план'.
(Тяжесть 16) в C: \ XAMPP \ HTDOCS \ CAGD \ leave_request.php на линии 110

Warning: mssql_query() [function.mssql-query]: Query failed in C:\xampp\htdocs 
\CAGD\leave_request.php on line 110 
Error querying MSSQL database 
+1

Вы получаете ошибку? – Hammerstein

+0

ДА Внимание: mssql_query() [function.mssql-query]: message: Неверное имя объекта 'dbo.CAGD Plan'. (серьезность 16) в C: \ xampp \ htdocs \ CAGD \ leave_request.php в строке 110 Предупреждение: mssql_query() [function.mssql-query]: Ошибка запроса в C: \ xampp \ htdocs \ CAGD \ leave_request.php on line 110 Ошибка запроса базы данных MSSQL – user3315848

+2

Ваша переменная $ leave, а не $ Leave, поэтому, если вы собираетесь что-то вроде CAGD4 Plan, измените вашу переменную на нижний регистр. PHP чувствителен к регистру. – Hammerstein

ответ

0

Хм, мне кажется, что у вас есть 7 полей в таблице, но только 6 значений, представленных - вы отсутствуют значение для первого столбца, [No_]. Кроме того, последний столбец satus (я полагаю, это должно быть «статус») не содержит разделителей []. Возвращенная ошибка сообщает вам, что имя таблицы неверно. И да, имена переменных чувствительны к регистру в PHP, это должно быть $ leave - лучше всего выйти из строки и объединить - что-то вроде "bla bla".$leave."anything here with spaces or not".

3

Первый Укажите подключение к базе данных ...

mssql_connect('Server-PC','user','password','database') 
like -> "localhost","root","XXXX", "DBNAME" 

затем запрос как

$query = "INSERT INTO TABLENAME (id,name) VALUES 
('$id','$name')"; 
$result = mssql_query($query,$dbc) 
0

это должно ли быть переменной?

$query = "INSERT INTO dbo.[CAGD$Leave Plan] ([No_],[Employee No 
           ^^^^^^ 

Если это так, то это, очевидно, не определен в коде, и генерируемая строка запроса будет содержать dbo.[CAGD Plan], а не то, что значение должно было быть в этой переменной. Если $ буквально находится в имени вашей таблицы, то он должен быть CAGD\$Leave, так что $Leave не рассматривается как переменная.

+0

dbo. [CAGD $ Leave Plan] - это имя таблицы – user3315848

+0

, тогда вам придется избегать '' ', так что php не обрабатывает' $ Leave' как переменную. –

0

Вы можете использовать SQLSRV Driver вместо MSSQL Driver, а затем попробовать этот

<?php 
$serverName = "serverName"; 
$options = array( "UID" => "sa", "PWD" => "Password", "Database" => "DBname"); 
$conn = sqlsrv_connect($serverName, $options); 

if($conn === false) 
    { 
    echo "Could not connect.\n"; 
    die(print_r(sqlsrv_errors(), true)); 
    } 

$no = $_POST['no']; 
$name= $_POST['name']; 

$query = "INSERT INTO dbo.Test 
     (No_,FirstName) 
     VALUES(?, ?)"; 
$params1 = array($no,$name);      
$result = sqlsrv_query($conn,$query,$params1); 

sqlsrv_close($conn); 
?> 

Это является более полезным, и вы можете узнать больше здесь:

https://msdn.microsoft.com/en-us/library/cc626305(v=sql.105).aspx