mysqli 语句和mysql语句一样吗,如何在PHP中使用mysqli准备的语句?

I am trying out prepared statements, but the below code is not working. I am getting the error:

Fatal error: Call to a member function execute() on a non-object in

/var/www/prepared.php on line 12

$mysqli = new mysqli("localhost", "root", "root", "test");

if ($mysqli->connect_errno) {

echo "Failed to connect to MySQL: " . $mysqli->connect_error;

}

$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");

// insert one row

$stmt->execute(array('one',1));

// insert another row with different values

$stmt->execute(array('two',1));

?>

Also, do i need to use mysqli for prepared statements? Can anyone point me to a complete example on prepared statements from connection to insertion to selection with error handling?

解决方案

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

i.e.:

$name = 'one';

$age = 1;

$stmt = $mysqli->prepare("INSERT INTO users (name, age) VALUES (?,?)");

// bind parameters. I'm guessing 'string' & 'integer', but read documentation.

$stmt->bind_param('si', $name, $age);

// *now* we can execute

$stmt->execute();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值