mysql - 无法在mysql中执行准备好的语句

标签 mysql sql prepared-statement

我无法执行以下准备好的语句,

PREPARE stmt FROM 'SELECT sb.id,sb.category,sb.make,sb.name,sb.pic,rs.slot
FRO M studbike AS sb LEFT JOIN reservation AS rs ON
sb.id=rs.studbike_id AND sb.availability=1 AND rs.date=? WHERE
sb.studpoint_id=? ORDER BY category DESC,name DESC';

如果我尝试通过以下方式执行准备好的语句:

SET @sid=1;@date1 ='2012-06-12';
EXECUTE stmt USING @sid,@date1;

我得到:

mysql> EXECUTE stmt1 USING @sid,@date1;
Empty set, 3 warnings (0.00 sec)

mysql> SHOW WARNINGS ;
+---------+------+------------------------------------------------------+
| Level   | Code | Message                                              |
+---------+------+------------------------------------------------------+
| Warning | 1292 | Incorrect date value: '1' for column 'date' at row 1 |
| Warning | 1292 | Incorrect date value: '1' for column 'date' at row 1 |
| Warning | 1265 | Data truncated for column 'studpoint_id' at row 1    |
+---------+------+------------------------------------------------------+
3 rows in set (0.00 sec)

但是我可以通过给一些值代替 ?在选择语句中。

mysql> SELECT sb.id,sb.category,sb.make,sb.name,sb.pic,rs.slot
        FROM studbike AS sb LEFT JOIN reservation AS rs ON sb.id=rs.studbike_id
        AND sb.availability=1 AND  rs.date='2012-06-11' WHERE sb.studpoint_id=1
        ORDER BY category DESC,name DESC \ G
*************************** 1. row ***************************
      id: 2 category: 126-150
    make: bajaj
    name: pulser
     pic: test.gif
    slot: NULL
*************************** 2. row ***************************
      id: 1 category: 100-125
    make: bajaj
    name: discover
     pic: test.gif
    slot: NULL 
    2 rows in set (0.00 sec)

问候,
拉维。

最佳答案

EXECUTE stmt USING @sid,@date1;

应该是

EXECUTE stmt USING @date1,@sid;

订单很重要....

关于mysql - 无法在mysql中执行准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10987104/

相关文章:

mysql - PHP 数组和对象在一起 - 坏/好的做法?

sql - 如何从表中选择距离小于 x 的对?

sql - 将 SQL Server DateTime 列迁移到 DateTimeOffset

java - 是否可以创建一个准备好的语句并稍后在 postgres 下使用 Java 重用它?

php - 使用之间的差异?和 :param in prepare statement

php - 如何在存储过程中使用 MySQLi 准备语句

mysql - 我可以为从 Windows At.exe 创建的 .sql 文件指定 .zip 格式吗?

PHP 查询运行缓慢并截断非常大的 MySQL 数据库中的值

sql - ISNUMERIC ('07213E71' ) = 真?

php - Cassandra 还是 mysql 5?哪个对 future 有好处?