Click here to Skip to main content
15,897,891 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I am trying to insert my data to mssql server with odbc using PHP but it doesnt insert any rows.

Here My PHP Codes:

PHP
$q="INSERT INTO dosyadegerlendirme (
                                    YatisNo,
                                    Degerlendirici,
                                    Kodlayici,
                                    HataSeviye,
                                    AnaHataKategoriId,
                                    AnaHataKategori,
                                    AltKategoriId,
                                    AltKategori,
                                    DosyaDonemi,
                                    DegerlendirmeTarihi ) 
    VALUES    (
               '{$_POST['yatisno']}',
               '{$_SESSION['login_user']}',
               '{$_POST['kodcu']}',
               '{$hataSeviye}',
               '{$_POST['AnaHataKategorisi']}', 
               '{$anaKategoriAciklama}',
               '{$_POST['AltHataKategorisi']}',
               '{$altKategoriAciklama}',
               '{$_POST['donem']}',
               '{$_POST['dtarih']}' )";



$result=odbc_exec($baglanti, $q); 


When I run this code I am getting this error:

[Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.



How can I achive this?

Thanks
Posted
Updated 2-Apr-15 22:58pm
v2
Comments
Peter Leow 3-Apr-15 4:39am    
Any error message?
Tahsin Çetin 3-Apr-15 4:43am    
It doesnt return any error message
Peter Leow 3-Apr-15 5:10am    
Are you sure?
Mohibur Rashid 3-Apr-15 4:43am    
why are you putting curly bracket in your query?
Tahsin Çetin 3-Apr-15 4:46am    
Because of query in double quot and value must be in odd quot

1 solution

You are messing up the quotes and injecting query string directly into sql statement. That is open for SQL Injection[^].
PHP
$para1 = mysqli_real_escape_string($connection, $_POST['yatisno']);
$para2 = mysqli_real_escape_string($connection, $_SESSION['login_user']);

$q = "INSERT INTO dosyadegerlendirme
 (…) VALUES ('$para1', '$para2', …)";

Refer: http://php.net/manual/en/mysqli.real-escape-string.php[^]
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900