Sloupec v MySQL který povoluje ukládat jen hodnoty z výčtu
[mycol] set('1','2','3','4','5','6') default NULL,
Alternativní zápis pro MS SQL který umožňuje také pouze hodnoty z výčtu
Create table [enum_tbl] (
[enum_nr] tinyint NOT NULL CHECK (enum_nr IN('1','2','3','4','5','6','7','8','9','10'))
)
Create table [enum_tbl2] (
[enum_nr] tinyint NULL CHECK (enum_nr IN('1','2','3','4','5','6','7','8','9','10'))
)
Problém při přepisu aplikace z MySQL na MS SQL je v tom že pokud používáte UTF-8
tak každá stringová hodnota pro MS SQL musí obsahovat prefix N'hodnota'.
Čimž se trochu komplikuje vytváření SQL příkazů.
REPLACE
'collate utf8_bin' => ''
'int(11)' => 'int'
'varchar' => 'nvarchar'
'unsigned' =>''
'auto_increment' => 'IDENTITY(1,1)'
PHP
'<?' => '<?php'
sqlsrv_query($objConn, $strQueryIN, $params)
NumRows
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $objConn, $strQueryIN, $params, $options);
Dotaz je potřeba volat s Options = Scrolable, aby bylo možné použít sql_num_rows
mysql_num_rows($result) =>
if( sqlsrv_fetch( $result ) === false) {
die( print_r( sqlsrv_errors(), true));
}
$REcount
= sqlsrv_num_rows($result) !== false
? sqlsrv_get_field($result, 0)
: 0;
FetchArray
mysql_fetch_assoc($result) => sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)
Result
mysql_result($result, 0) => sqlsrv_get_field($result, 0)
if(sqlsrv_num_rows($result)===false) {
if ($REcount!==false)
Last Insert ID
mysql_insert_id() => mssql_insert_id()
function mssql_insert_id() {
$id = 0;
$res = MSSQLQuery($conn, "SELECT @@identity AS id");
if ($row = mssql_fetch_array($res, MSSQL_ASSOC)) {
$id = $row["id"];
}
return $id;
}
mysql_real_escape_string
function mssql_escape($str)
{
if(get_magic_quotes_gpc())
{
$str= stripslashes($str);
}
return str_replace("'", "''", $str);
}
Zdroje:
http://php.net/manual/en/intro.mssql.php
http://stackoverflow.com/questions/1434298/sql-server-equivalent-to-mysql-enum-data-type
http://dev.mysql.com/doc/refman/5.0/en/set.html
http://stackoverflow.com/questions/12880567/equivalent-of-mysql-insert-id-for-ms-sql-server
http://stackoverflow.com/questions/2146546/mysql-real-escape-string-alternative-for-sql-server
http://php.net/manual/en/function.sqlsrv-fetch-array.php
http://php.net/manual/en/function.sqlsrv-num-rows.php
http://php.net/manual/en/function.sqlsrv-get-field.php