如何在sql查询中将这个php值与整个引号连接起来,以便在phpmyadmin数据库中正确保存?
TXT.rtf
请帮助我获取正确的sql查询,以便在我的数据库中成功插入此URL,这是表,我已将Origin_URL列设置为varchar列。数据进入该栏目。
答案 0 :(得分:0)
永远不要用PHP或任何其他支持绑定语句的语言(几乎是任何现代语言)来连接SQL查询。
要使用绑定语句,首先需要准备它:
// Each value is a placeholder
$sql = "UPDATE file_contents SET Origin_URL = CONCAT('https://www.google.com/maps/dir/', ?, ',' ?, '/', ?, ',', ?) WHERE Sl = ?";
$stmt = $db->prepare($sql);
// First parameter should correspond to number and types of your arguments
// You have 5, first four are strings, fifth is a number, so "ssssd"
$stmt->bind_param('ssssd', $OriginLatId, $OriginLongId, $DestinationLatId, $DestinationLongId, $id);
$stmt->execute();
答案 1 :(得分:0)
我建议您使用PDO
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>
获得连接后,您可以准备好声明
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
期待这会对你有所帮助
答案 2 :(得分:-1)
您的字符串连接存在许多问题,+
用于添加,单引号中的变量是字符串,而不是变量,并且您似乎在太多实例中添加引号。
您应该能够使用双引号中的复杂花括号来构建字符串:
$val1 = "https://www.google.com/maps/dir/{$OriginLatId},{$OriginLongId}/{$DestinationLatId},{$DestinationLongId}";
您可以在此处详细了解http://php.net/manual/en/language.types.string.php。
或通过标准串联:
$val1 = 'https://www.google.com/maps/dir/' . $OriginLatId .',' . $OriginLongId . '/' . $DestinationLatId . ',' . $DestinationLongId;
您可以在此处详细了解http://php.net/manual/en/language.operators.string.php。
然后将其写入数据库。不需要mysql concat
函数。
$sql = 'UPDATE file_contents
SET Origin_URL = ?
WHERE Sl = 1 LIMIT 6';
$stmt = $db->prepare($sql);
$stmt->bind_param('s', $val1);
$stmt->execute();