1
我很新的MYSQL和預處理語句。我有幾個需要更改爲準備語句的查詢。問題出在這個REGEXP查詢:PHP MySQL的REGEXP預處理語句
$objects = mysql_query("SELECT * FROM $table WHERE parent REGEXP ',".
$item .",|^". $item .",|,". $item ."\$|^".
$item ."\$'") or die(mysql_error());
你怎麼把它轉換成一個準備好的聲明與佔位符?
您可以從查詢做一份聲明中W/O改變它。嘗試是這樣的: '$ SQL = 「SELECT * FROM WHERE父REGEXP',| ^?|,\ $ |^\ $???」' ,然後用它是這樣的: '$ DB->製備($ SQL,陣列($表,$項目,項目,項目,即項目));' 如果將選擇使用 [PDO](php.net/manual/en/book.pdo製備querise .php),使用你的值重新生成'?'沒有問題。另一個不錯的選擇是[AdoDB](http://adodb.sourceforge.net/)。 – tijs 2012-08-07 16:31:55
不是說它會幫助回答你的問題,但應該指出,你應該停止使用'mysql_ *'函數。他們正在被棄用。請使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不確定使用哪一個,[閱讀這篇文章](http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons)。 – Matt 2012-08-07 16:32:56