Php 未定义变量:运行原始sql查询时出错
我试图使用laravel的Php 未定义变量:运行原始sql查询时出错,php,mysql,laravel-4,Php,Mysql,Laravel 4,我试图使用laravel的DB::statement()使用原始SQL语句插入数据,但问题是当我在播种机中运行它时,控制台认为密码是可变的,而不是字符串 这是密码 DB::statement("INSERT INTO `users` (`id`, `email`, `password`, `permissions`, `activated`, `activation_code`, `activated_at`, `last_login`, `persist_code`, `reset_passw
DB::statement()
使用原始SQL语句插入数据,但问题是当我在播种机中运行它时,控制台认为密码是可变的,而不是字符串
这是密码
DB::statement("INSERT INTO `users` (`id`, `email`, `password`, `permissions`, `activated`, `activation_code`, `activated_at`, `last_login`, `persist_code`, `reset_password_code`, `first_name`, `last_name`, `created_at`, `updated_at`)
VALUES
(13, '1@1.com', '$2y$10$FGKgaSVG6ZQS19mg9c2nMutVjQuIL0OMYsXcB4ZkE5dntL72Wq8N6', NULL, 1, NULL, NULL, NULL, NULL, NULL, 'Edwin', 'Lugo', '2016-01-12 23:49:01', '2016-01-12 23:49:01'),
(14, '2@1.com', '$2y$10$xIruVm4ju60hIOahIjaP4ewZbVYO69Xwr4IOFw7D5H/74wXNQ8RlO', NULL, 1, NULL, NULL, NULL, NULL, NULL, 'Max', 'Bonilla ', '2016-01-12 23:50:21', '2016-01-12 23:50:21'),
(15, '3@1.COM', '$2y$10$tmhzXsF5jlTwWDXRObzHLOAmZzDcMDK0GdbImUnUYtfIn.WWaIj8a', NULL, 1, NULL, NULL, NULL, NULL, NULL, 'Denny', 'Tran ', '2016-01-12 23:51:42', '2016-01-12 23:51:42')");
结果是
PS:我正在使用Laravel4PHP以双引号处理变量。由于
$
和尾随文本($2
在PHP中是无效的变量名,因此不会引起问题),因此密码字符串被作为变量读取
问题的简单演示:更正的简单演示:
代码的外观:
'INSERT INTO `users` (`id`, `email`, `password`, `permissions`, `activated`, `activation_code`, `activated_at`, `last_login`, `persist_code`, `reset_password_code`, `first_name`, `last_name`, `created_at`, `updated_at`)
VALUES
(13, "1@1.com", "$2y$10$FGKgaSVG6ZQS19mg9c2nMutVjQuIL0OMYsXcB4ZkE5dntL72Wq8N6", NULL, 1, NULL, NULL, NULL, NULL, NULL, "Edwin", "Lugo", "2016-01-12 23:49:01", "2016-01-12 23:49:01"),
(14, "2@1.com", "$2y$10$xIruVm4ju60hIOahIjaP4ewZbVYO69Xwr4IOFw7D5H/74wXNQ8RlO", NULL, 1, NULL, NULL, NULL, NULL, NULL, "Max", "Bonilla ", "2016-01-12 23:50:21", "2016-01-12 23:50:21"),
(15, "3@1.COM", "$2y$10$tmhzXsF5jlTwWDXRObzHLOAmZzDcMDK0GdbImUnUYtfIn.WWaIj8a", NULL, 1, NULL, NULL, NULL, NULL, NULL, "Denny", "Tran ", "2016-01-12 23:51:42", "2016-01-12 23:51:42")'
在PHP中使用字符串封装的单引号<代码>$FGKgaSVG6ZQS19mg9c2nMutVjQuIL0OMYsXcB4ZkE5dntL72Wq8N6因双引号而被读取为变量。SQL字符串封装使用双引号。@chris85整个查询是双引号的,它还会将其作为变量读取吗?是的,将整个内容改为单引号,并将内部部分改为双引号。