Description:
Hi,
In the following test case, the query executes successfully as a normal query, but triggers an error in prepared statement:
```
mysql> EXECUTE prepare_query;
+---------------------------+
| ((t1.c0)NOT REGEXP('\L')) |
+---------------------------+
| 1 |
+---------------------------+
1 row in set (0.00 sec)
mysql> SELECT '\'';
+---+
| ' |
+---+
| ' |
+---+
1 row in set (0.00 sec)
mysql> PREPARE prepare_query FROM "SELECT '\''";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1
```
This sometimes can cause logic bugs, as shown in the following test case:
```
mysql> CREATE TABLE t0(c0 DOUBLE);
Query OK, 0 rows affected (0.01 sec)
mysql> REPLACE INTO t0 VALUES (0.5);
Query OK, 1 row affected (0.03 sec)
mysql> SELECT t0.c0 FROM t0 WHERE '1\'#' AND FALSE;
Empty set, 1 warning (0.00 sec)
mysql> PREPARE prepare_query FROM "SELECT t0.c0 FROM t0 WHERE '1\'#' AND FALSE";
Query OK, 0 rows affected (0.00 sec)
Statement prepared
mysql> EXECUTE prepare_query;
+------+
| c0 |
+------+
| 0.5 |
+------+
1 row in set (0.00 sec)
```
How to repeat:
```
SELECT '\'';
PREPARE prepare_query FROM "SELECT '\''";
```
```
CREATE TABLE t0(c0 DOUBLE);
REPLACE INTO t0 VALUES (0.5);
SELECT t0.c0 FROM t0 WHERE '1\'#' AND FALSE; -- empty result
PREPARE prepare_query FROM "SELECT t0.c0 FROM t0 WHERE '1\'#' AND FALSE"; -- 0.5
EXECUTE prepare_query;
```