mysqli中的issssi、sssdi是什么?
What is issssi, sssdi in mysqli?
$con = new mysqli("localhost","root","","my_db");
$stmt = $con->prepare("INSERT INTO mytbl(name,dob,gen,dt) VALUES ('$name','$datepicker','$gen',now())");
$stmt->bind_param('issssi', $name, $datepicker, $gen);
$stmt->execute();
$newId = $stmt->id;
$stmt->close();
我最近开始编写此类代码,所以我并没有真正理解这些东西“issssi”“sssdi”。这些东西有什么用?它是否因语句而异以及如何在 $stmt->bind_param
.
中绑定 now()
阅读 documentation 可能是一个好的开始。
字符定义了参数的类型。在这种情况下,您提供的类型多于参数,所以这是错误的。
最错误的是您根本没有使用任何参数。您仍然只是将变量的值按原样放入 SQL 字符串中,并且容易受到注入和其他问题的影响。
如果您想要当前时间戳,则无需对 now()
执行任何操作。服务器将处理它。如果你想要一些其他时间戳,那么你可以像其他人一样将它变成一个可绑定变量。
$con = new mysqli("localhost","root","","my_db");
$stmt = $con->prepare("INSERT INTO mytbl(name,dob,gen,dt) VALUES ('$name','$datepicker','$gen',now())");
$stmt->bind_param('issssi', $name, $datepicker, $gen);
$stmt->execute();
$newId = $stmt->id;
$stmt->close();
我最近开始编写此类代码,所以我并没有真正理解这些东西“issssi”“sssdi”。这些东西有什么用?它是否因语句而异以及如何在 $stmt->bind_param
.
now()
阅读 documentation 可能是一个好的开始。
字符定义了参数的类型。在这种情况下,您提供的类型多于参数,所以这是错误的。
最错误的是您根本没有使用任何参数。您仍然只是将变量的值按原样放入 SQL 字符串中,并且容易受到注入和其他问题的影响。
如果您想要当前时间戳,则无需对 now()
执行任何操作。服务器将处理它。如果你想要一些其他时间戳,那么你可以像其他人一样将它变成一个可绑定变量。