1 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
說明:
你的錯(cuò)誤的原因是sqlsrv_query() return false,這意味著你的語句沒有正確執(zhí)行:
返回值(sqlsrv_query):
語句資源。如果無法創(chuàng)建和/或執(zhí)行該語句,則返回 false。
如果語句未正確執(zhí)行,您需要檢查 的結(jié)果sqlsrv_query()并獲取錯(cuò)誤sqlsrv_errors()。
<?php
...
$query = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
if ($query === false) {
echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
exit;
}
...
?>
補(bǔ)充說明:
嘗試使用參數(shù)化查詢。函數(shù)sqlsrv_query()支持使用參數(shù):
sqlsrv_query 函數(shù)非常適合一次性查詢,除非特殊情況適用,否則應(yīng)該是執(zhí)行查詢的默認(rèn)選擇。此函數(shù)提供了一種以最少代碼執(zhí)行查詢的簡化方法。sqlsrv_query 函數(shù)同時(shí)進(jìn)行語句準(zhǔn)備和語句執(zhí)行,并可用于執(zhí)行參數(shù)化查詢。
示例(基于您的代碼):
<?php
if (!isset($_POST['referenceno'])) {
echo "Error."
exit;
}
$data = $_POST['referenceno'];
//$user = $user['fingerscanno'];
$explode = explode(":", $data);
$deptcode = $explode[0];
$emp = $explode[1];
$empno = str_pad(++$emp, 7, "0", STR_PAD_LEFT);
$jobposition = $explode[2];
$departmentname = $explode[3];
$sql = "
SELECT
DISTINCT LEFT (departmentcode,4) as deptcode,
MAX(RIGHT(employeeidno, 7)) as empno,
section,
departmentname,
paymentmode,
hrdjobpositionentry.jobposition as jobposition
FROM departmentmasterfile, hrdjobpositionentry,employeemasterfile
WHERE
hrdjobpositionentry.department = departmentmasterfile.departmentname AND
LEFT (employeemasterfile.employeeidno,4) = LEFT (departmentmasterfile.departmentcode,4) AND
LEFT (departmentcode,4) = ? AND hrdjobpositionentry.jobposition = ?
GROUP BY LEFT (departmentcode,4), section, departmentname, paymentmode, hrdjobpositionentry.jobposition
ORDER BY LEFT (departmentcode,4);
INSERT INTO employeemasterfile (employeeidno) VALUES (? + ?);
";
$params = array(
$deptcode,
$jobposition,
$deptcode,
$empno
);
$query = sqlsrv_query($conn, $sql, $params, array("Scrollable" => SQLSRV_CURSOR_KEYSET));
if ($query === false) {
echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
exit;
}
while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) {
var_dump($row);
echo "<br>";
}
sqlsrv_free_stmt($query);
?>
- 1 回答
- 0 關(guān)注
- 151 瀏覽
添加回答
舉報(bào)