Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 函数要求数组为字符串,是否转换?_Php_Html_Mysql_Arrays_String - Fatal编程技术网

Php 函数要求数组为字符串,是否转换?

Php 函数要求数组为字符串,是否转换?,php,html,mysql,arrays,string,Php,Html,Mysql,Arrays,String,我得到这个错误: 警告:mysql_real_escape_string要求参数1为字符串,数组在bla-bla中给出 这是生成它的代码: if($_POST['action'] == 'Napadi') { $igralec_ime = $_SESSION['username']; $igralec = array ( 'ime' => $igralec_ime, '

我得到这个错误:

警告:mysql_real_escape_string要求参数1为字符串,数组在bla-bla中给出

这是生成它的代码:

if($_POST['action'] == 'Napadi') {

    $igralec_ime = $_SESSION['username'];
    $igralec = array (
                      'ime'         => $igralec_ime,
                      'napad'   => prikazi_stat('ofe',$igralec_ime),
                      'obramba' => prikazi_stat('def',$igralec_ime),
                      'curhp'       => prikazi_stat('curhp',$igralec_ime)
                     );

    $monster_ime = $_POST['monster'];
    $monster = array (
                      'ime'         => $monster_ime,
                      'napad'   => prikazi_monster_stat('ofe',$monster_ime),
                      'obramba' => prikazi_monster_stat('def',$monster_ime),
                      'curhp'       => prikazi_monster_stat('maxhp',$monster_ime)
                     );       

    $combat = array();
    $turns = 0;     
    while($igralec['curhp'] > 0 && $monster['curhp'] > 0) {

        if($turns % 2 != 0) {
            $napadalec = &$monster;
            $branilec = &$igralec; } 
        else {
            $napadalec = &$igralec;
            $branilec = &$monster; }

        $damage = 0;    
        if($napadalec['napad'] > $branilec['obramba']) {
            $damage = $napadalec['napad'] - $branilec['obramba']; }

        $branilec['curhp'] -= $damage;
        $combat[$turns] = array(
            'napadalec' =>  $napadalec['ime'],
            'branilec'  =>  $branilec['ime'],
            'damage'    =>  $damage
                               )

        $turns++; }

$_SESSION['monster'] = $monster;
上面的代码将变量$monster放入数组中,正如您所看到的,现在当此页面重定向到我的视图页面并尝试更新函数update_save$igralec_ime,'gozd',$monster;我得到了上述警告。我知道这是因为页面返回一堆怪物变量,如下所示:

Matic napade Velikanski komar in mu napravi poškodbe za 2 točk zdravja

Velikanski komar napade Matic in mu napravi poškodbe za 1 točk zdravja

Matic napade Velikanski komar in mu napravi poškodbe za 2 točk zdravja

Velikanski komar napade Matic in mu napravi poškodbe za 1 točk zdravja
等等,但我不知道如何修复它。我应该将这个输出数组转换回字符串吗

编辑:带有问题函数的代码

function update_save($igralec_name, $lokacija, $monster_name = null) {
ustvari_save($igralec_name, $lokacija, $monster_name);
$query = sprintf("UPDATE igralec_save SET lokacija = '%s', monster_name = '%s' WHERE igralec_name = '%s'",
    mysql_real_escape_string($lokacija),
    mysql_real_escape_string($monster_name),
    mysql_real_escape_string($igralec_name));
$result = mysql_query($query);
}
如果$monster是一个数组,mysql\u real\u escape\u字符串(顾名思义)接受一个字符串,则必须向其传递一个字符串

由于函数使用$monster_名称,您可能需要从$monster数组中获取该名称

例如,在对代码一无所知的情况下,不要复制和粘贴:

update_save($igralec_ime, 'gozd', $monster['ime']);

我们可以看到的代码中没有mysql\u real\u escape\u字符串,我们不知道这些变量在做什么。事实上,您正试图将一个数组馈送到mysql\u real\u escape\u字符串中,这根本不起作用。请显示发生错误的代码。它不包括在您的样品中,也与您的产品无关it@king_nak我编辑了我的question@deceze我知道将数组输入mysql\u real\u escape\u字符串不起作用,我在问如何才能准确地获取数组的变量!我忽略了这样一个简单的解决方案,您不需要拆开数组,只需像这样选择数组的变量即可。我需要开始把事情复杂化