gpt4 book ai didi

php - 如何解决此错误 : (Warning: Illegal string offset) and (Notice: Uninitialized string offset: 0)

转载 作者:行者123 更新时间:2023-11-29 06:53:02 30 4
gpt4 key购买 nike

假设我有 search.php 和 edit.php。在 search.php 中,他们可以删除和更新一些记录。如果用户单击“更新”按钮,系统会将用户重定向到另一个名为 edit.php 的页面。我成功调用了itemid。但这种情况发生了..

<?php 
$itemid = $_GET["itemid"];
$description = "";
$classification = "";
$unit = "";
$quantity = "";
$price = "";
$reorder = "";
$status ="";

$record = MYDB::query(
"select
*
from
item
where
itemid = ? ",
array($itemid),
"SELECT"
);

if(count($record) > 0)
{
$record = $record[0];
$description = $description['description'];
$classification = $classification['classification'];
$unit = $unit['unit'];
$quantity = $quantity['quantity'];
$price = $price['price'];
$reorder = $reorder['reorder'];
$status = $status['status'];
}
else
{
echo '<div class="fail">';
echo '<b>FAIL!</b> Item Not Found!</div>';
die();
}

if(isset($_POST["btnsubmit"]))
{
if(isset($_POST["description"])){
$description=ucwords(trim($_POST["description"]));
}
else{
echo "Please Enter description";
}
if(isset($_POST["classification"])){
$classification=ucwords(trim($_POST["classification"]));
}
else{
echo "Please Enter classification";
}
if(isset($_POST["unit"])){
$unit=ucwords(trim($_POST["unit"]));
}
else{
echo "Please Enter unit";
}
if(isset($_POST["quantity"])){
$quantity=ucwords(trim($_POST["quantity"]));
}
else{
echo "Please Enter quantity";
}
if(isset($_POST["price"])){
$price=ucwords(trim($_POST["price"]));
}
else{
echo "Please Enter Price";
}
if(isset($_POST["reorder"])){
$reorder=ucwords(trim($_POST["reorder"]));
}
else{
echo "Please Enter reorder";
}
if(isset($_POST["status"])){
$status=ucwords(trim($_POST["status"]));
}
else{
echo "Please Enter status";
}
}

?>

这是错误,

警告:非法字符串偏移

注意:未初始化的字符串偏移量:0

最佳答案

该错误基本上意味着您正在通过不存在的键调用数组。我会告诉你是哪个键,但你没有提供具体的变量。

假设我有这个数组:

$array = ('some_real_key' => 'a very important value');

现在,如果我调用此 $array['some_fake_key'],鉴于我们的数组没有该 some_fake_key 那么它将产生您所看到的错误。您的 0 偏移量 也是如此。

您在代码中调用它:

$record = $record[0];

这意味着没有 0 偏移量,这可能意味着一系列事情......同样没有提供足够的数据。但它会遵循与上面相同的示例。

要解决这些问题,您可以使用array_key_exists():

if ( array_key_exists( 'some_real_key', $array )
{
echo $array['some_real_key'];
}
else if ( array_key_exists( 'some_fake_key', $array )
{
echo $array['some_fake_key'];
}

这将仅输出第一个数组键;并且不会输出任何错误。

更新

考虑一下,我认为您的错误可能是由您的变量产生的,如下所示:

        $record = $record[0];
$description = $description['description'];
$classification = $classification['classification'];
$unit = $unit['unit'];
$quantity = $quantity['quantity'];
$price = $price['price'];
$reorder = $reorder['reorder'];
$status = $status['status'];

您并不是真正从数组设置它们;您可能想要调用 $record['key'] 而不是 $description = $description['description'];

例如,这看起来像:

$description = $record['description'];
// ... so on ...

关于php - 如何解决此错误 : (Warning: Illegal string offset) and (Notice: Uninitialized string offset: 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46740575/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com