php - Laravel 4 无法运行整个 RAW 查询

标签 php mysql laravel laravel-4

我想使用 laravel 的 DB 类来执行一个 mysql 查询,但是 Laravel 提供的功能都不起作用。

这些都不起作用:DB::statment()/DB::select()/DB::raw()/DB::update()/DB::select(DB::raw())

这是我要查询的代码:

DROP TABLE users;

CREATE TABLE `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `u_username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `u_email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `u_regdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `u_birthday` date NOT NULL DEFAULT '0000-00-00',
  `u_lastlogin` int(11) NOT NULL,
  `u_logcout` int(11) NOT NULL DEFAULT '0',
  `u_level` tinyint(1) NOT NULL DEFAULT '0',
  `u_language` tinyint(1) NOT NULL DEFAULT '0',
  `u_status` tinyint(1) NOT NULL DEFAULT '0',
  `u_gender` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO users VALUES("1","admin","admin@example.com","$2y$08$9sBJh7iyF9Yr6xvsieNmBOsotGPBkZFydVjb/Yk5Fzh4IGBVo7Je6","0000-00-00 00:00:00","0000-00-00","0","0","9","0","0","0");
INSERT INTO users VALUES("2","moderator","mod@example.com","$2y$08$15/tIKPM/8gATSzkmey5tuAA/PL4lJeFq7liTETyz0h1dkOotwp3G","0000-00-00 00:00:00","0000-00-00","0","0","0","0","0","0");
INSERT INTO users VALUES("3","helper","help@example.com","$2y$08$nTtZU9/UBeRLbYJRO/XwCe2D/B57ofx2bCN8vGEiHkqO.bPra0WT6","0000-00-00 00:00:00","0000-00-00","0","0","0","0","0","0");
INSERT INTO users VALUES("4","dude12","dude@example.com","$2y$08$y0JweKtWxJFRF7Ko8q0zkODY.EWEKJ.CR1dDco6aCJh8ssKdzQ6RC","0000-00-00 00:00:00","0000-00-00","0","0","0","0","0","0");
INSERT INTO users VALUES("5","girl1","girl@example.com","$2y$08$UKjJzxDuYW7upqeLsm1VOOo2jUoqMaai0/1jFxvLDzC6eWjin3yOe","0000-00-00 00:00:00","0000-00-00","0","0","0","0","0","0");

我也看过并尝试了这两个主题的方法,但没有任何效果:

cannot-run-raw-query-in-laravel-4

laravel-4-how-to-run-a-raw-sql

使用 "DB::select( DB::raw($query) )"或 DB::statement 执行时返回错误:

SQLSTATE[42000]: Syntax error or access violation: 1064 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 'CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `u_use' at line 3 (SQL: DROP TABLE users; CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `u_username` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `u_email` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `password` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `u_regdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `u_birthday` date NOT NULL DEFAULT '0000-00-00', `u_lastlogin` int(11) NOT NULL, `u_logcout` int(11) NOT NULL DEFAULT '0', `u_level` tinyint(1) NOT NULL DEFAULT '0', `u_language` tinyint(1) NOT NULL DEFAULT '0', `u_status` tinyint(1) NOT NULL DEFAULT '0', `u_gender` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; INSERT INTO users VALUES("1","admin","admin@example.com","$2y$08$9sBJh7iyF9Yr6xvsieNmBOsotGPBkZFydVjb/Yk5Fzh4IGBVo7Je6","0000-00-00 00:00:00","0000-00-00","0","0","9","0","0","0"); INSERT INTO users VALUES("2","moderator","mod@example.com","$2y$08$15/tIKPM/8gATSzkmey5tuAA/PL4lJeFq7liTETyz0h1dkOotwp3G","0000-00-00 00:00:00","0000-00-00","0","0","0","0","0","0"); INSERT INTO users VALUES("3","helper","help@example.com","$2y$08$nTtZU9/UBeRLbYJRO/XwCe2D/B57ofx2bCN8vGEiHkqO.bPra0WT6","0000-00-00 00:00:00","0000-00-00","0","0","0","0","0","0"); INSERT INTO users VALUES("4","dude12","dude@example.com","$2y$08$y0JweKtWxJFRF7Ko8q0zkODY.EWEKJ.CR1dDco6aCJh8ssKdzQ6RC","0000-00-00 00:00:00","0000-00-00","0","0","0","0","0","0"); INSERT INTO users VALUES("5","girl1","girl@example.com","$2y$08$UKjJzxDuYW7upqeLsm1VOOo2jUoqMaai0/1jFxvLDzC6eWjin3yOe","0000-00-00 00:00:00","0000-00-00","0","0","0","0","0","0"); ) (Bindings: array ( ))

最佳答案

执行 SQL 代码就像我在问题中提供的一样可以使用

DB::unprepared( $code );

我希望这能帮助那些遇到同样问题的人 :D

Answer found while looking through laravel issues

关于php - Laravel 4 无法运行整个 RAW 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17630490/

相关文章:

php - paypal php sdk 返回 getSupplementaryDataMap() 缺失

PHP重构工具

mysql - SQL - 如何在没有子选择的情况下排除结果?

java - 构建 Java Windows 应用程序以访问在线 MySQL 数据库需要什么

php - 拉拉维尔 : Query to get a single column in response from a JSON column in mysql 5. 7

php - 如何阻止 Webpack 文件名更改?

mysql - 当 mysqld_safe 完成启动时发出信号

laravel - 如何在流明中使用preferredLocale?

mysql - Laravel 4.2 查询生成器中如何嵌套联接

php - Eloquent 访问器和属性命名