2015-05-01 4 views
1

Может кто-нибудь помочь мне в этой проблеме.Может ли кто-нибудь помочь мне связать переменную в String?

function get_shareSearch($conn, $searchBy) { 
$id = ""; 
if(isset($_GET['share'])) 
    { 
     $id = $_GET['share']; 
     if($id == "%") 
     { 
      $id = "This is not going to work"; 
     } 
    } 
$statement = db_create_statement($conn, "SELECT DISTINCT * FROM shares WHERE company LIKE '%" . $id . "%' OR issue_date LIKE '%" . $id ."%' ORDER BY $searchBy ASC"); 
db_bind($statement, ':id', $id); 
$resultset = db_fetch_resultset($statement); 
return $resultset; 

}

function db_bind($statement, $name, $value) { 
return oci_bind_by_name($statement, $name, $value, 30); 

}

Предупреждение: функцией oci_bind_by_name(): ORA-01036: недопустимый переменная

может ли один помочь мне, как изменить идентификатор переменной в оракула, чтобы я мог по-прежнему иметь конкатенацию плюс, чтобы иметь возможность привязывать переменную? Спасибо.

db_bind($statement, ':id', $id); 
+0

Я использую, что так когда я ищу в моей базе данных, если, например, у меня есть что-то по имени Круто поэтому, если я буду искать только букву «o», она отобразит everyName, у которой есть это «o», я делаю это как конкатенацию, а не как заполнитель. – Nico12345

+0

, но мне не нужен поискBy, мне нужен id, проблема в привязке id, searchBy работает так. – Nico12345

+0

Вот почему я спрашиваю, я хочу провести операцию конкатенации и использовать: id. – Nico12345

ответ

2

Чтобы связать переменные в строку они должны быть объединены (оракул нотации):

SELECT DISTINCT * FROM shares WHERE company LIKE '%' || :id || '%' OR issue_date LIKE '%' || :id || '%' ORDER BY $searchBy ASC 
+0

Еще раз спасибо, забыл, что могу конкатенировать в оракуле, а не в php: D – Nico12345

+0

незначительные изменения где? – Nico12345

+1

А в вопросе, должно быть «редактировать» внизу – maraca

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