我正在制作一个游戏,但是我遇到了一个问题,但是我尝试做的事情似乎无法正常运行。我有四个变量(经过验证)
$id, $plantId, $stage, $started
我的查询看起来像这样......
$sql = "
UPDATE growth
SET plantId = '$plantId', stage = '$stage', started = '$started'
WHERE id = '$id'
";
它返回false,但我在phpMyAdmin中尝试了相同的查询并且它有效! 我做错了什么?
答案 0 :(得分:0)
尽量不要使用普通的MySql。我知道学习新技术可能会让人感到压力,但我们生活在2016年。有很多工具可以让您的生活更轻松。
例如DiBi数据库层: https://github.com/dg/dibi
您可以使用官方版本,如文档中所示:
选择
dibi::query('SELECT * FROM users WHERE id = ?', $id);
INSERT
$arr = [
'name' => 'John',
'is_admin' => TRUE,
];
dibi::query('INSERT INTO users', $arr);
更新
dibi::query('UPDATE users SET', $arr, 'WHERE `id`=?', $x);
或者您可以使用 FLUENT VERSION :
选择
$res = dibi::select('product_id')->as('id')
->select('title')
->from('products')
->innerJoin('orders')->using('(product_id)')
->orderBy('title')
->fetchAll();
INSERT
$record = array(
'title' => 'Výrobek',
'price' => 318,
'active' => TRUE,
);
dibi::insert('products', $record)
->execute();
更新
$record = array(
'title' => 'Výrobek',
'price' => 318,
'active' => TRUE,
);
dibi::update('products', $record)
->where('product_id = %d', $id);
->execute();
它会让你的生活更轻松。学习流畅的版本和连接您的查询甚至非常有趣。当您需要测试查询时,只需使用test()方法。
您甚至不必担心sql注入。