treehouse : what would you like to learn today?
Web Design Web Development iOS Development

Binding array values to variables

  • Hi I am adapting Jeffery Ways Mysql class to accept multiple where statements however I have got stuck on the final hurdle.
    It is when I try to do the bind_results() and I pass in the parameter types and the parameters. Here is that part of the code:

    if ($this->_where)
    $values = array_values($this->_where);

    $str = "'";
    $str .= implode('\', \'', $values);
    $str .= "'";
    // echo $str;
    $count = count($this->_where);

    foreach($this->_where as $key => $value){
    $key = $value;
    }
    $user = 'matt25';
    $pass = '6722853cacc4a9649dc75abc852f23c35b1f75cb';

    $stmt->bind_param($this->_paramTypeList, $user, $pass);
    }


    It works how it is by setting the parameters as variables, but that obviously isn't practical. as you can see I also tried to make a string with the values from the array which brought up the error:
    Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of elements in type definition string doesn't match number of bind variables in C:\wamp\www\trick_tips\admin\includes\MysqlDb.php on line 260,

    the same as when I try to put the array into there.

    So I need some way of setting each value in the array as a variable to then put into the function, or another Idea that I have completely missed.

    Any help would be much appreciated.

    Cheers,
    Matt
  • I've got a similar problem. =/

  • What is the value of $this->_paramTypeList if you output before the binding happens?

      echo '<pre>';
      print_r($this->_paramTypeList);
      echo '</pre>';
      exit;