Cos*_*aru 3 php database mysqli sqlbindparameter
我无法理解为什么会出现错误:"变量数与预准备语句中的参数数量不匹配".
我的代码看起来像这样:
$DB['con'] = new mysqli($$DB['host'],$DB['user'],$DB['pass'],$DB['base']);
$stmt=$DB['con']->prepare("insert into points(iduser,puncte,nume,email,telefon,ultimulpost)values('?',?,'?','?','?',(SELECT CURDATE()))");
$stmt->bind_param('sisss',$idm,$mynumber,$nume,$email,$tel);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)
问题出在这一行:
$stmt=$DB['con']->prepare("insert into points(iduser,puncte,nume,email,telefon,ultimulpost)values('?',?,'?','?','?',(SELECT CURDATE()))");
Run Code Online (Sandbox Code Playgroud)
你的错误是你在?占位符周围加上引号.这意味着它们被解释为文字字符串?,而不是需要填充的占位符.因此,您实际上只有一个占位符,所以当您发送五个时,它会告诉您错误的数字.
报价是不必要的.整个问题'sisss'是说"这些值是字符串",因此您不需要使用引号来说同样的事情.
以下应该有效:
$stmt=$DB['con']->prepare("insert into points(iduser,puncte,nume,email,telefon,ultimulpost)values(?,?,?,?,?,(SELECT CURDATE()))");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2243 次 |
| 最近记录: |