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