PHP语法错误:mysqli_stmt_bind_param()
我从未使用过PHP,为了让我的Android设备在一个web服务器上存储三个变量,我正在使用这段代码。我的错误来自以下代码的最后一行:PHP语法错误:mysqli_stmt_bind_param(),php,mysqli,Php,Mysqli,我从未使用过PHP,为了让我的Android设备在一个web服务器上存储三个变量,我正在使用这段代码。我的错误来自以下代码的最后一行: $name = $_POST[“name”]; $password = $_POST[“password”]; $username = $_POST[“username”]; $statement = mysqli_prepare($con, 'INSERT INTO `user`(name,username,password) VALUES(?,?,?)')
$name = $_POST[“name”];
$password = $_POST[“password”];
$username = $_POST[“username”];
$statement = mysqli_prepare($con, 'INSERT INTO `user`(name,username,password) VALUES(?,?,?)');
mysqli_stmt_bind_param($statement, “sss”, $name, $username, $password);
我的文件名是Register.php,错误是:
警告:mysqli_stmt_bind_param()[function.mysqli stmt bind param]:类型定义字符串中的元素数与第11行/home/a9208046/public_html/Register.php中的绑定变量数不匹配
有人能帮忙吗?谢谢。问题出在这一行
mysqli_stmt_bind_param($statement, “sss”, $name, $username, $password);
它应该是“sss”而不是“sss”您正在使用智能引号
“
;如果您有正确的错误报告,您将看到:
Notice: Use of undefined constant “sss” - assumed '“sss”' in /in/MnZR4 on line 3
这就解释了问题所在;你想要成为一个3个字符的字符串,结果是5个字符,因此出现了错误。使用普通引号,它就可以正常工作。使用IDE(甚至基本文本编辑器)处理PHP文件。不要使用MS Word或LibreOffice或任何“文字处理器”。我这么说是因为你的代码中充斥着“智能引号”。将
“
/”
替换为普通引号”
。代替“sss”
,即代替{左双引号=U+201C}sss{右双引号=U+201D}
-简单双引号(U+0022)就可以了。