[英]Trouble inserting variables into SQL database using PHP
我需要使用PHP将信息从HTML文档保存到SQL数据库。 但是,我对变量的串联有疑问。 这是我到目前为止的内容:
$requete= $sql->prepare"(INSERT INTO personnes (name,surname,street,city,country)
VALUES". "("$name.$surname.$street.$city.$country."))";
到目前为止,这是唯一构成问题的部分,因为在我初次亮相时,其余代码仍在工作。 我究竟做错了什么?
使用,
用于分隔值。 .
(DOT)用于连接字符串。
$requete= $sql->prepare("INSERT INTO personnes (name,surname,street,city,country)
VALUES ('$name','$surname','$street','$city','$country')");
这是您的查询。 您还需要绑定参数。
$sql->bind_param($name,$surname,$street,$city,$country);
有关更多信息, 请阅读
使用?
作为值并将您的值绑定到查询。 我实际上不能给你一个例子。
PHP文档中也对此进行了描述:
您可以将参数绑定与mysqli Statement Object一起使用,在文档的面向对象样式的第一个示例中它如何显示:
Example#1面向对象的样式
<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);
$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;
/* execute prepared statement */
$stmt->execute();
printf("%d Row inserted.\n", $stmt->affected_rows);
/* close statement and connection */
$stmt->close();
/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", $mysqli->affected_rows);
/* close connection */
$mysqli->close();
?>
以及第二个示例中描述的过程样式。
Example#2程序风格
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$city = "Amersfoort";
/* create a prepared statement */
$stmt = mysqli_stmt_init($link);
if (mysqli_stmt_prepare($stmt, 'SELECT District FROM City WHERE Name=?')) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "s", $city);
/* execute query */
mysqli_stmt_execute($stmt);
/* bind result variables */
mysqli_stmt_bind_result($stmt, $district);
/* fetch value */
mysqli_stmt_fetch($stmt);
printf("%s is in district %s\n", $city, $district);
/* close statement */
mysqli_stmt_close($stmt);
}
/* close connection */
mysqli_close($link);
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.