Подготовленные операторы SQL - PullRequest
0 голосов
/ 29 июня 2018

Я получаю эту ошибку постоянно:

Вызов функции-члена bind_param () для логического типа *

Обычно оно появляется, когда мы пытаемся выполнить операцию с несуществующей таблицей, и оператор prepare возвращает false, но у меня есть структурированная таблица. Мои подготовленные заявления:

$query = "INSERT INTO `profiles`(name,email,handle,DOB,profilePic,gender,r_lat,r_lon,c_lat,"
               . "c_lon,connections,recentActivities,savedItems,achievements,school,"
               . "interestsB,interestsI,interestsE,work,coverPic,bio,fb_url,insta_url,link_url,wordpress_url,"
               . "other_url,address,range,phone)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

PS: я открыт для всех предложений.

       $stmt=$mysqli->prepare($query);
       $stmt->bind_param("ssssssddddsssssssssssssssssii",$name,$email,$handle,$DOB,$profilePic,$gender,$r_lat,$r_lon,$c_lat,$c_lon,
               $connections,$recentActivities,$savedItems,$achievements,$school,$interestsB,
               $interestsI,$interestsE,$work,$coverPic,$bio,$fb_url,$insta_url,$link_url,$wordpress_url,
               $other_url,$address,$range,$phone);
       $res = $stmt->execute();
       return $res;  

Я публикую скриншоты:

enter image description here

печать возвращает ошибку:

1064 В вашем синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования вблизи, телефон) ЗНАЧЕНИЯ (?,?,?,?,?,?,?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) 'в строке 1

1 Ответ

0 голосов
/ 29 июня 2018

range является зарезервированным словом в MySQL . Вы можете избежать этого, заключив его в кавычки:

`range`
...