2015-01-03 3 views
3

Извините, если я не знаком с этим.Подготовленные операторы MySQLi в PHP

 if(!isset($stmt_counttime)) { $stmt_counttime = $mysqli->prepare("SELECT count(1) as count FROM `stop_times` where `stop_id` = ? and `trip_id` = ? LIMIT 1"); 
    $stmt_counttime->bind_param('ss',$stop_id,$trip_id); } 
    $stop_id = $data[3]; 
    $trip_id = $data[0]; 
    $stmt_counttime->execute(); 
    $stmt_counttime->bind_result($count_time_result); 
    $stmt_counttime->fetch(); 

    if(!isset($stmt_counttrip)) { $stmt_counttrip = $mysqli->prepare("SELECT count(1) as count FROM `trips` where `trip_id` = ?"); 
    $stmt_counttrip->bind_param('s',$tripid); 
    } 

    $tripid = $data[0]; 
    $stmt_counttrip->execute(); 
    $stmt_counttrip->bind_result($count_trip_result); 
    $stmt_counttrip->fetch(); 

Line 67: $ stmt_counttrip-> bind_param ('s', $ tripid);

Ошибка: Критическая ошибка: Вызов функции члена bind_param() на не-объект в /home/fallouta/public_html/ocbus/google_transit/stop_times.php на линии 67

Если кто-то может позволить мне знать , что я делаю неправильно? Пожалуйста, дайте мне знать.

Примечание: Мне нужно значение trip_id как строку не целое.

Спасибо, Сайрус

ответ

3

я понял свою ошибку. Должно быть включено следующее заявление:

$ stmt-> store_result();

Поскольку у вас не может быть двух запросов одновременно. Не стесняйтесь добавлять дополнительную информацию.

1

первый сет PARAMS, а затем связать их:

$stop_id = $data[3]; 
$trip_id = $data[0]; 
$stmt_counttime->bind_param('ss',$stop_id,$trip_id); 

и

$tripid = $data[0]; 
$stmt_counttrip->bind_param('s',$tripid); 

по крайней мере, это то, что php.net рекомендует

Смежные вопросы