我一直在寻找答案,但没有运气:我在这个函数中定义了一个变量,我尝试在同一个函数中使用它,但PHP给了我这个:
注意:
未定义的变量:第42行的
C:\ xampp\htdocs\liquidity\includes\layout\DBBroker.php中的查询警告:mysqli_query():C:\ xampp\htdocs\liquidity\includes\layout\DBBroker中的空查询.第42行的PHP
这怎么可能?我定义它并在同一个函数中使用它.该函数是prikaziClanove,它旁边有"//这里问题开始".码:
<?php
define ("DBHOST", "localhost");
define("DBUSER", "standard_user");
define("DBPASS", "standard");
define("DBNAME", "liquidity");
class DBBroker {
private $dbhost;
private $dbuser;
private $dbpass;
private $dbname;
private $conn;
function __construct() { //connects to DB and checks the connection
$this->dbhost = DBHOST;
$this->dbuser = DBUSER;
$this->dbpass = DBPASS;
$this->dbname = DBNAME;
$this->conn = mysqli_connect($this->dbhost, $this->dbuser, $this->dbpass, $this->dbname);
if (!$this->conn) {
die("Došlo je do greške pri konektovanju na bazu: ".mysqli_error($this->conn));
}
}
/*$conn = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME);
if ($conn) …Run Code Online (Sandbox Code Playgroud) 我在 Angular 工作,遇到以下情况:
my.service.ts有这个类:
export class MyClass {
MyList: string[] = [];
MyString: string = '';
createString(): void {
this.MyList.forEach(s => {
this.MyString += s + ', ';
});
}
}
Run Code Online (Sandbox Code Playgroud)
my.component.ts是这样调用它的:
myData: MyClass[] = [];
this.myService.getMyData().subscribe(res => {
myData = res;
if (myData.length > 0) {
this.myData.forEach(x => x.createString());
}
});
Run Code Online (Sandbox Code Playgroud)
VS Code 将该createString函数识别为 的方法MyClass,但我仍然收到错误:
错误类型错误:x.createString 不是函数
有什么解释吗?
编辑:数据来自后端,后端模型没有此方法。也许这就是问题所在?
我正在尝试从 Windows 服务调用 API。API 是用 ASP MVC 编写的。到目前为止,我正在创建如下请求:
private List<T> GetCollectionFromApi<T>(string url)
{
List<T> result = new List<T>();
try
{
var request = (HttpWebRequest) WebRequest.Create(url);
request.Method = "GET";
using (var response = (HttpWebResponse) request.GetResponse())
{
using (var stream = response.GetResponseStream())
{
using (var sr = new StreamReader(stream))
{
result.AddRange(JsonConvert.DeserializeObject<List<T>>(sr.ReadToEnd()));
}
}
}
}
catch (Exception e)
{
// handle err
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但现在我需要通过 GET 请求传递一个参数。该参数是一个对象,而不是原始类型。
我是否在查询字符串中逐个属性地解构它?或者我是否以某种方式将其添加到请求标头?我确实计划依赖API 控制器中的DefaultModelBinder 。任何计划将不胜感激。
我正在编写一个反应式表单,其中某些下拉值默认为 null,如下所示:
\n<div>\n <label>My Dropdown</label>\n <select formControlName="someId">\n <option [value]="null">Choose whatever</option>\n <option *ngFor="let data of dataArr" [value]="data.id">\n {{ data.name }}\n </option>\n </select>\n</div>\nRun Code Online (Sandbox Code Playgroud)\n我的表单初始化如下:
\nthis.formBuilder.group({\n //...\n someId: this.fb.control(null)\n});\nRun Code Online (Sandbox Code Playgroud)\n并用标准补丁patchValue(model)功能。
问题是 \xe2\x80\x93 当我选择“选择任何”选项时,该null值变成"null"字符串。我的其他逻辑依赖于空值为真null而不是字符串。我怎样才能避免这种情况?
如果它很重要,我用来修补表单的模型的类型string为someId。这是一个因素吗?
angular ×2
typescript ×2
asp.net-mvc ×1
c# ×1
function ×1
http-get ×1
http-headers ×1
javascript ×1
mysqli ×1
null ×1
php ×1
scope ×1
types ×1