2009-11-02 31 views
0

我知道我的连接到数据库的工作,并且我没有使用自动递增ID的测试对我来说工作得很好。下面的代码拒绝工作,我无法找到解决办法。我的表有3列,ID(自动增量),名称和值。 为了使这个工作正常,我需要改变什么?不能将数据插入到包含自动递增主键的表中使用PHP准备好的语句

在此先感谢

//create placeholder query 
$query = "INSERT INTO prepared_test (name, value) VALUES (?,?)"; 

//prepare the query 
$stmt = mysqli_prepare($connection, $query); 

$name = 'steve'; 
$value = 45; 

mysqli_bind_param($stmt, array(MYSQLI_BIND_STRING, MYSQLI_BIND_INT), $name, $value); 
mysqli_execute($stmt); 

if(mysqli_stmt_affected_rows($stmt) != 1) 
    die("issues"); 

mysqli_stmt_close($stmt); 

$connection->close(); 

回答

3

mysqli_bind_param被弃用,只是mysqli_stmt_bind_param的别名,mysqli_stmt_bind_param预计绑定类型是字符串不是一个数组。所以只要改变那一行。

mysqli_stmt_bind_param($stmt, 'si', $name, $value); 
+0

干杯的人,工作过一种享受! :) – Drew

0

我建议你使用PDO(http://ar2.php.net/PDO)。这对不同数据库的面向对象的接口,它有一个清洁器的语法和从RDBMS摘要你)

+1

他问他为什么不能插入,而不是哪个有scleaner语法。 – streetparade

+0

是的,我只是给了一个建议:) – alcuadrado

相关问题