問(wèn)題描述
我收到很多錯(cuò)誤,例如:mysqli_real_escape_string() 期望參數(shù) 1 為 mysqli,給出布爾值
I get a lot of errors like: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given
錯(cuò)誤是 mysqli_real_escape_string() 需要 2 個(gè)參數(shù),但只有 1 個(gè)項(xiàng)目需要更新.
The errors are that the mysqli_real_escape_string() expects 2 parameters but there is only 1 item that needs to be updated.
問(wèn)題出在這里:
$updatequery = "
UPDATE
as_comprofiler
SET
cb_empstatustime = '".time()."'
, cb_profiel = '".mysqli_real_escape_string($value->profile->nickname)."'
, cb_empstatus = '".mysqli_real_escape_string($cb_empstatus)."'
, cb_taal = '".mysqli_real_escape_string($talen)."'
, cb_sms = '".mysqli_real_escape_string($sms)."'
WHERE
cb_boxnr = '".mysqli_real_escape_string($value->boxnumber)."'
";
以及頁(yè)面的完整部分:
// elke ***
foreach ($xml->consultant as $value) {
// $cb_empstatus vullen a.d.h.v activated en callstatus
if ($value->activated == 0) {
$cb_empstatus = 'Afwezig';
} elseif ($value->activated == 1) {
if ($value->callstatus == 0) {
$cb_empstatus = 'Beschikbaar';
} elseif ($value->callstatus == 1) {
$cb_empstatus = 'Bezet';
} elseif ($value->callstatus == 2) {
$cb_empstatus = 'Pauze';
}
}
// lege variabele aanmaken
$talen = '';
$sep = '';
foreach ($value->languages->language as $taal) {
$talen .= $sep;
$talen .= $taal;
$sep = '|*|';
}
// sms code omzetten naar tekst
if ($value->smsavailable == 1) {
$sms = 'Ja';
} else {
$sms = 'Nee';
}
// de update query
$updatequery = "
UPDATE
as_comprofiler
SET
cb_empstatustime = '".time()."'
, cb_profiel = '".mysqli_real_escape_string($value->profile->nickname)."'
, cb_empstatus = '".mysqli_real_escape_string($cb_empstatus)."'
, cb_taal = '".mysqli_real_escape_string($talen)."'
, cb_sms = '".mysqli_real_escape_string($sms)."'
WHERE
cb_boxnr = '".mysqli_real_escape_string($value->boxnumber)."'
";
if (mysqli_query($updatequery) == false) {
// foutmelding
echo 'Niet uitgevoerd:<br>'.$updatequery.'<br><br>';
}
有人有想法嗎?
推薦答案
你必須添加 mysqli 連接器 作為 mysqli_real_escape_string()
函數(shù)中的第一個(gè)參數(shù).并且要轉(zhuǎn)義的字符串設(shè)置為第二個(gè)參數(shù).
You have to add mysqli connector as 1st parameter in mysqli_real_escape_string()
function. And the string to be escaped set as 2nd parameter.
<?php
// Let's suppose this is your mysqli connector
$mysqli = mysqli_connect("localhost", "user", "password", "database");
// Then your code should looks like this:
$updatequery = "
UPDATE
as_comprofiler
SET
cb_empstatustime = '".time()."'
, cb_profiel = '".mysqli_real_escape_string($mysqli, $value->profile->nickname)."'
, cb_empstatus = '".mysqli_real_escape_string($mysqli, $cb_empstatus)."'
, cb_taal = '".mysqli_real_escape_string($mysqli, $talen)."'
, cb_sms = '".mysqli_real_escape_string($mysqli, $sms)."'
WHERE
cb_boxnr = '".mysqli_real_escape_string($mysqli, $value->boxnumber)."'
";
?>
mysqli_real_escape_string 的文檔說(shuō)得很清楚:
mysqli_real_escape_string(mysqli $mysql, string $string): string
這意味著:
- 第一個(gè)參數(shù)必須是 mysqli 對(duì)象,由 mysqli_connect() 或 mysqli_init()
- 第二個(gè)參數(shù)必須是要轉(zhuǎn)義的字符串.
這篇關(guān)于mysqli_real_escape_string() 期望參數(shù) 1 是 mysqli,布爾值給定集合的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!