我有一个插入查询,我想从表中获取ID.我一直在搜索,我找到了PDO的lastInsertId().当我想使用它时,我得到PHP错误.
这是我的代码:
$db = new database();
$naam = $db->quoteQuery($_POST['naam']);
$barcode = $db->quoteQuery($_POST['barcode']);
$sql = "INSERT INTO products(name, barcode) VALUES (".$name.",".$barcode.")";
$results = $db->executeQuery($sql);
$lastid = $results->lastInsertId();
Run Code Online (Sandbox Code Playgroud)
但这给出了一个错误,这个错误:
Fatal error: Call to undefined method PDOStatement::lastInsertId() in /home/onlineweuh/domains/onlinewebapps.nl/public_html/vsb/admin/add-product.class.php on line 297
Run Code Online (Sandbox Code Playgroud)
我的数据库类:
class database
{
private $handleDB;
public function __construct()
{
$host = ;
$user = ;
$database = ;
$password = ;
try
{
$this->handleDB = new PDO('mysql:host='.$host.';dbname='.$database, $user, $password);
}
catch (PDOException $e)
{
print_r($e);
}
$this->handleDB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
Run Code Online (Sandbox Code Playgroud)
我希望有人可以帮我解决它,我想要插入Query时给出的ID.
我不是JavaScript的专业人士,我已经在网上看了很久的搜索.
我从另一个函数获取变量时遇到问题.我的代码看起来像这样:
var variabeltje;
$.post('js/ajax/handle_time.php', {'time': $(this).find('input').val()},
function(data) {
alert(data);
variabeltje=data;
}
);
alert(window.variabeltje);
Run Code Online (Sandbox Code Playgroud)
变量variabeltje必须从数据中获取信息.当我把警报放在下面variabeltje=data它它正在工作,但是我需要在函数之后的数据变量.
编辑:
我把它改成了人们所说的,我现在有了这个:
var XHR = $.post('js/ajax/handle_time.php', {time: $(this).find('input').val()});
XHR.done(function(data) {
console.log(data);
getData(data);
});
function getData(data) {
if(data == 'true') {
alert(data);
$(this).unbind('keypress');
$(this).html($(this).find('input').val());
}
}
Run Code Online (Sandbox Code Playgroud)
但现在$(this)没有传入函数.我怎么解决这个问题?