Ратуючыся «?» ў пабудаваным запыце MYSQL

Мне трэба шукаць базу дадзеных для запісу з атрыбутам .

Калі я пабудаваць запыт, падобны прыведзеным ніжэй ён чакае параметр будзе прыняты ў а.

select id FROM/* table */WHERE fullname = '?' AND ......

Ці ёсць просты спосаб абысці гэта? Я паспрабаваў з дапамогай \? у радку замест гэтага, але з тым жа вынікам.

Дзякуй за прапановы, праблема заключаецца ў тым, што запыт быў перадаецца ў іншую частку праграмнага забеспячэння для штурхання ў базу дадзеных, і ён з усіх сіл, каб справіцца з «?».

0
Ці з'яўляецца PHP або MySQL скардзіцца на запытальны?
дададзена аўтар Cobra_Fast, крыніца
Ці з'яўляецца PHP або MySQL скардзіцца на запытальны?
дададзена аўтар Cobra_Fast, крыніца
Ці можам мы ўбачыць код PHP тады?
дададзена аўтар Cobra_Fast, крыніца
Ці можам мы ўбачыць код PHP тады?
дададзена аўтар Cobra_Fast, крыніца
Alt таго LIKE «%» адказы здаецца няправільнай, так як% з'яўляюцца шмат дзікіх карт у SQL.
дададзена аўтар Joop Eggen, крыніца
Alt таго LIKE «%» адказы здаецца няправільнай, так як% з'яўляюцца шмат дзікіх карт у SQL.
дададзена аўтар Joop Eggen, крыніца
Гэты запыт працуе ў MySQL, напрыклад, у кансолі MySQL. Магчыма, што гэта пытанне вашага кліента MySQL. Чаму імя табліцы каментуе?
дададзена аўтар Devart, крыніца
Гэты запыт працуе ў MySQL, напрыклад, у кансолі MySQL. Магчыма, што гэта пытанне вашага кліента MySQL. Чаму імя табліцы каментуе?
дададзена аўтар Devart, крыніца
Выклік атрыбуту не вельмі разумны ход. Калі вы выкарыстоўваеце MySQLi, вы тост. Калі вы выкарыстоўваеце PDO, разгледзіць імя параметрызацыі.
дададзена аўтар Sébastien Renauld, крыніца
Выклік атрыбуту не вельмі разумны ход. Калі вы выкарыстоўваеце MySQLi, вы тост. Калі вы выкарыстоўваеце PDO, разгледзіць імя параметрызацыі.
дададзена аўтар Sébastien Renauld, крыніца
я не разумею, што фактычная праблема?
дададзена аўтар Stephan, крыніца
я не разумею, што фактычная праблема?
дададзена аўтар Stephan, крыніца
Атрыбут быў названы такім чынам у CMS, які мы выкарыстоўваем. Гэта жудасны недахоп дызайну, але запіс, пазначаныя «?» як правіла, ніколі не павінны быць запытаны.
дададзена аўтар Ash Jolliffe, крыніца
Атрыбут быў названы такім чынам у CMS, які мы выкарыстоўваем. Гэта жудасны недахоп дызайну, але запіс, пазначаныя «?» як правіла, ніколі не павінны быць запытаны.
дададзена аўтар Ash Jolliffe, крыніца
@Cobra_Fast гэта памылка ад PHP пра тое, што ён чакае 1 параметр і 0 былі дадзены.
дададзена аўтар Ash Jolliffe, крыніца
@Cobra_Fast гэта памылка ад PHP пра тое, што ён чакае 1 параметр і 0 былі дадзены.
дададзена аўтар Ash Jolliffe, крыніца

8 адказы

  1. If it is prepared statement in PDO; you can try this:

    $statement = $connection->prepare( "select id FROM tablename WHERE fullname = ? AND ..";
    $statement->bindParam( 1, '?', PDO::PARAM_STR );
    
  2. If it is a simple MySQL query, you don't need to escape the ? at all.
1
дададзена
  1. If it is prepared statement in PDO; you can try this:

    $statement = $connection->prepare( "select id FROM tablename WHERE fullname = ? AND ..";
    $statement->bindParam( 1, '?', PDO::PARAM_STR );
    
  2. If it is a simple MySQL query, you don't need to escape the ? at all.
1
дададзена

Паспрабуйце выкарыстоўваць як ..

    select id FROM/* table */WHERE fullname like '%?%' AND ......
0
дададзена

Паспрабуйце выкарыстоўваць як ..

    select id FROM/* table */WHERE fullname like '%?%' AND ......
0
дададзена

Вы можаце выкарыстоўваць LIKE %% функцыя параўнання ў пунктах, каб адпавядаць у патрэбнай калонцы. Такім чынам, вы знойдзеце матчы, які змяшчае вашу ўваходныя радок замест дакладных супадзенняў, якія вы знайшлі б з роўным аператарам параўнання

select id FROM/* table */WHERE fullname LIKE '%?%' AND ......
0
дададзена

Вы можаце выкарыстоўваць LIKE %% функцыя параўнання ў пунктах, каб адпавядаць у патрэбнай калонцы. Такім чынам, вы знойдзеце матчы, які змяшчае вашу ўваходныя радок замест дакладных супадзенняў, якія вы знайшлі б з роўным аператарам параўнання

select id FROM/* table */WHERE fullname LIKE '%?%' AND ......
0
дададзена

спрабаваць

select id FROM/* table */WHERE fullname  LIKE '%?%%' ESCAPE '?';
0
дададзена

спрабаваць

select id FROM/* table */WHERE fullname  LIKE '%?%%' ESCAPE '?';
0
дададзена