这是我的代码? PDO总是将最后插入的id
作为0返回,我尝试了所有内容。!
$this->db()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO inbox (sender,recever) VALUES ('1','2')";
$this->db()->exec($sql);
$project_id =$this->db()->lastInsertId();
sql
代码表:
CREATE TABLE inbox(
id int(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
sender int,
recever int
);
答案 0 :(得分:-1)
试试这个
//set persistent connection
$con = new PDO("mysql:host=$this->host;dbname=$this->dbname",$this->user,$this->pass,array(PDO::ATTR_PERSISTENT => TRUE));
$stmt = $con->prepare("INSERT INTO inbox (sender,recever) VALUES ('1','2')");
$stmt->execute();
$id = $db->lastInsertId();
答案 1 :(得分:-1)
问题是您的<Window x:Class="WCSamples.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="CloseCommand"
Name="RootWindow"
>
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.Copy"
CanExecute="CanExecuteHandler"
/>
</Window.CommandBindings>
<StackPanel Name="MainStackPanel">
<Button Command="ApplicationCommands.Copy"
Content="Copy" />
</StackPanel>
</Window>
private void CanExecuteHandler(object sender, CanExecuteRoutedEventArgs e)
{
// CanExecute logic in here.
e.CanExecute = true;
}
方法,每次调用它时都会创建一个新连接。
使用属性而不是这种方法。将PDO实例分配给db()
属性,然后在需要PDO连接时使用它。
虽然您当前的实施非常糟糕,并且在其他答案中提供的解决方法无法保证正常工作。更不用说它不应该首先使用。