簡體   English   中英

PHP語法錯誤或訪問沖突:1064-在where子句中使用變量

[英]PHP syntax error or access violation: 1064 - using variable in where clause

從這一點上講,我已經嘗試了很多方法來更改變量的轉義符,但沒有任何工作,包括更改為'“。$ r。”'等。

如果我將變量硬編碼為一個常數,它將起作用。 例如$ r =“ Word”;

我將變量重命名為隨機字母,以防它們是保留字。

我已經盡力為mysql設置日志,並且我比較了這些語句,它們是相同的,唯一的區別是一個是通過文本框提交的,另一個是通過常量設置的。

模型:

 public static function searchProfile()
    {
    $r = Request::post('w');
    $args = "";
    if ($r) {$args = "`info_tradingstatus` = '$r'";}
    $database = DatabaseFactory::getFactory()->getConnection();
    $sql = "SELECT profile_id, profile_name FROM profile_seeker WHERE $args";

視圖:

  <input type="text" name="w" class="form-control" placeholder="Enter Keyword" aria-describedby="basic-addon1">

控制器:

public function search_action()
{
ProfileModel::searchProfile(
Request::post('w'),
Redirect::to('profile/searchresults'));
}

嗨,我認為問題是當$ r為空時,請嘗試:

public static function searchProfile()
    {
    $r = Request::post('w');
    $args = " 1 ";
    if ($r) {$args = "`info_tradingstatus` = '".$r."'";} // just in case
    $database = DatabaseFactory::getFactory()->getConnection();
    $sql = "SELECT profile_id, profile_name FROM profile_seeker WHERE $args";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM